Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 76e7461a authored by Paul Mundt's avatar Paul Mundt
Browse files
parents d0b873fc dd59f6c7
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@
*.lst
*.symtypes
*.order
modules.builtin
*.elf
*.bin
*.gz
@@ -45,14 +46,8 @@ Module.symvers
#
# Generated include files
#
include/asm
include/asm-*/asm-offsets.h
include/config
include/linux/autoconf.h
include/linux/compile.h
include/linux/version.h
include/linux/utsrelease.h
include/linux/bounds.h
include/generated

# stgit generated dirs
+17 −32
Original line number Diff line number Diff line
@@ -315,42 +315,27 @@ A: The following are what is required for CPU hotplug infrastructure to work

Q: I need to ensure that a particular cpu is not removed when there is some
   work specific to this cpu is in progress.
A: First switch the current thread context to preferred cpu
A: There are two ways.  If your code can be run in interrupt context, use
   smp_call_function_single(), otherwise use work_on_cpu().  Note that
   work_on_cpu() is slow, and can fail due to out of memory:

	int my_func_on_cpu(int cpu)
	{
		cpumask_t saved_mask, new_mask = CPU_MASK_NONE;
		int curr_cpu, err = 0;

		saved_mask = current->cpus_allowed;
		cpu_set(cpu, new_mask);
		err = set_cpus_allowed(current, new_mask);

		if (err)
			return err;

		/*
		 * If we got scheduled out just after the return from
		 * set_cpus_allowed() before running the work, this ensures
		 * we stay locked.
		 */
		curr_cpu = get_cpu();

		if (curr_cpu != cpu) {
			err = -EAGAIN;
			goto ret;
		} else {
			/*
			 * Do work : But cant sleep, since get_cpu() disables preempt
			 */
		}
		ret:
			put_cpu();
			set_cpus_allowed(current, saved_mask);
		int err;
		get_online_cpus();
		if (!cpu_online(cpu))
			err = -EINVAL;
		else
#if NEEDS_BLOCKING
			err = work_on_cpu(cpu, __my_func_on_cpu, NULL);
#else
			smp_call_function_single(cpu, __my_func_on_cpu, &err,
						 true);
#endif
		put_online_cpus();
		return err;
	}


Q: How do we determine how many CPUs are available for hotplug.
A: There is no clear spec defined way from ACPI that can give us that
   information today. Based on some input from Natalie of Unisys,
+1 −0
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ gconf
gen-devlist
gen_crc32table
gen_init_cpio
generated
genheaders
genksyms
*_gray256.c
+60 −0
Original line number Diff line number Diff line
Kernel driver k10temp
=====================

Supported chips:
* AMD Family 10h processors:
  Socket F: Quad-Core/Six-Core/Embedded Opteron
  Socket AM2+: Opteron, Phenom (II) X3/X4
  Socket AM3: Quad-Core Opteron, Athlon/Phenom II X2/X3/X4, Sempron II
  Socket S1G3: Athlon II, Sempron, Turion II
* AMD Family 11h processors:
  Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra)

  Prefix: 'k10temp'
  Addresses scanned: PCI space
  Datasheets:
  BIOS and Kernel Developer's Guide (BKDG) For AMD Family 10h Processors:
    http://support.amd.com/us/Processor_TechDocs/31116.pdf
  BIOS and Kernel Developer's Guide (BKDG) for AMD Family 11h Processors:
    http://support.amd.com/us/Processor_TechDocs/41256.pdf
  Revision Guide for AMD Family 10h Processors:
    http://support.amd.com/us/Processor_TechDocs/41322.pdf
  Revision Guide for AMD Family 11h Processors:
    http://support.amd.com/us/Processor_TechDocs/41788.pdf
  AMD Family 11h Processor Power and Thermal Data Sheet for Notebooks:
    http://support.amd.com/us/Processor_TechDocs/43373.pdf
  AMD Family 10h Server and Workstation Processor Power and Thermal Data Sheet:
    http://support.amd.com/us/Processor_TechDocs/43374.pdf
  AMD Family 10h Desktop Processor Power and Thermal Data Sheet:
    http://support.amd.com/us/Processor_TechDocs/43375.pdf

Author: Clemens Ladisch <clemens@ladisch.de>

Description
-----------

This driver permits reading of the internal temperature sensor of AMD
Family 10h and 11h processors.

All these processors have a sensor, but on older revisions of Family 10h
processors, the sensor may return inconsistent values (erratum 319). The
driver will refuse to load on these revisions unless you specify the
"force=1" module parameter.

There is one temperature measurement value, available as temp1_input in
sysfs. It is measured in degrees Celsius with a resolution of 1/8th degree.
Please note that it is defined as a relative value; to quote the AMD manual:

  Tctl is the processor temperature control value, used by the platform to
  control cooling systems. Tctl is a non-physical temperature on an
  arbitrary scale measured in degrees. It does _not_ represent an actual
  physical temperature like die or case temperature. Instead, it specifies
  the processor temperature relative to the point at which the system must
  supply the maximum cooling for the processor's specified maximum case
  temperature and maximum thermal power dissipation.

The maximum value for Tctl is available in the file temp1_max.

If the BIOS has enabled hardware temperature control, the threshold at
which the processor will throttle itself to avoid damage is available in
temp1_crit and temp1_crit_hyst.
+14 −0
Original line number Diff line number Diff line
Output files

modules.order
--------------------------------------------------
This file records the order in which modules appear in Makefiles. This
is used by modprobe to deterministically resolve aliases that match
multiple modules.

modules.builtin
--------------------------------------------------
This file lists all modules that are built into the kernel. This is used
by modprobe to not fail when trying to load something builtin.


Environment variables

KCPPFLAGS
Loading