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

Commit a208f37a authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge branch 'linus' into x86/x2apic

parents 511d9d34 5b664cb2
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
@@ -26,3 +26,37 @@ Description:
		I/O statistics of partition <part>. The format is the
		same as the above-written /sys/block/<disk>/stat
		format.


What:		/sys/block/<disk>/integrity/format
Date:		June 2008
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Metadata format for integrity capable block device.
		E.g. T10-DIF-TYPE1-CRC.


What:		/sys/block/<disk>/integrity/read_verify
Date:		June 2008
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Indicates whether the block layer should verify the
		integrity of read requests serviced by devices that
		support sending integrity metadata.


What:		/sys/block/<disk>/integrity/tag_size
Date:		June 2008
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Number of bytes of integrity tag space available per
		512 bytes of data.


What:		/sys/block/<disk>/integrity/write_generate
Date:		June 2008
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Indicates whether the block layer should automatically
		generate checksums for write requests bound for
		devices that support receiving integrity metadata.
+35 −0
Original line number Diff line number Diff line
What:		/sys/bus/css/devices/.../type
Date:		March 2008
Contact:	Cornelia Huck <cornelia.huck@de.ibm.com>
		linux-s390@vger.kernel.org
Description:	Contains the subchannel type, as reported by the hardware.
		This attribute is present for all subchannel types.

What:		/sys/bus/css/devices/.../modalias
Date:		March 2008
Contact:	Cornelia Huck <cornelia.huck@de.ibm.com>
		linux-s390@vger.kernel.org
Description:	Contains the module alias as reported with uevents.
		It is of the format css:t<type> and present for all
		subchannel types.

What:		/sys/bus/css/drivers/io_subchannel/.../chpids
Date:		December 2002
Contact:	Cornelia Huck <cornelia.huck@de.ibm.com>
		linux-s390@vger.kernel.org
Description:	Contains the ids of the channel paths used by this
		subchannel, as reported by the channel subsystem
		during subchannel recognition.
		Note: This is an I/O-subchannel specific attribute.
Users:		s390-tools, HAL

What:		/sys/bus/css/drivers/io_subchannel/.../pimpampom
Date:		December 2002
Contact:	Cornelia Huck <cornelia.huck@de.ibm.com>
		linux-s390@vger.kernel.org
Description:	Contains the PIM/PAM/POM values, as reported by the
		channel subsystem when last queried by the common I/O
		layer (this implies that this attribute is not neccessarily
		in sync with the values current in the channel subsystem).
		Note: This is an I/O-subchannel specific attribute.
Users:		s390-tools, HAL
+87 −40
Original line number Diff line number Diff line
@@ -30,45 +30,45 @@ Description:
		$ cd /sys/firmware/acpi/interrupts
		$ grep . *
		error:	     0
		ff_gbl_lock:0
		ff_pmtimer:0
		ff_pwr_btn:0
		ff_rt_clk:0
		ff_slp_btn:0
		gpe00:0
		gpe01:0
		gpe02:0
		gpe03:0
		gpe04:0
		gpe05:0
		gpe06:0
		gpe07:0
		gpe08:0
		gpe09:174
		gpe0A:0
		gpe0B:0
		gpe0C:0
		gpe0D:0
		gpe0E:0
		gpe0F:0
		gpe10:0
		gpe11:60
		gpe12:0
		gpe13:0
		gpe14:0
		gpe15:0
		gpe16:0
		gpe17:0
		gpe18:0
		gpe19:7
		gpe1A:0
		gpe1B:0
		gpe1C:0
		gpe1D:0
		gpe1E:0
		gpe1F:0
		gpe_all:241
		sci:241
		ff_gbl_lock:	   0   enable
		ff_pmtimer:	  0  invalid
		ff_pwr_btn:	  0   enable
		ff_rt_clk:	 2  disable
		ff_slp_btn:	  0  invalid
		gpe00:	     0	invalid
		gpe01:	     0	 enable
		gpe02:	   108	 enable
		gpe03:	     0	invalid
		gpe04:	     0	invalid
		gpe05:	     0	invalid
		gpe06:	     0	 enable
		gpe07:	     0	 enable
		gpe08:	     0	invalid
		gpe09:	     0	invalid
		gpe0A:	     0	invalid
		gpe0B:	     0	invalid
		gpe0C:	     0	invalid
		gpe0D:	     0	invalid
		gpe0E:	     0	invalid
		gpe0F:	     0	invalid
		gpe10:	     0	invalid
		gpe11:	     0	invalid
		gpe12:	     0	invalid
		gpe13:	     0	invalid
		gpe14:	     0	invalid
		gpe15:	     0	invalid
		gpe16:	     0	invalid
		gpe17:	  1084	 enable
		gpe18:	     0	 enable
		gpe19:	     0	invalid
		gpe1A:	     0	invalid
		gpe1B:	     0	invalid
		gpe1C:	     0	invalid
		gpe1D:	     0	invalid
		gpe1E:	     0	invalid
		gpe1F:	     0	invalid
		gpe_all:    1192
		sci:	1194

		sci - The total number of times the ACPI SCI
		has claimed an interrupt.
@@ -89,6 +89,13 @@ Description:

		error - an interrupt that can't be accounted for above.

		invalid: it's either a wakeup GPE or a GPE/Fixed Event that
			doesn't have an event handler.

		disable: the GPE/Fixed Event is valid but disabled.

		enable: the GPE/Fixed Event is valid and enabled.

		Root has permission to clear any of these counters.  Eg.
		# echo 0 > gpe11

@@ -97,3 +104,43 @@ Description:

		None of these counters has an effect on the function
		of the system, they are simply statistics.

		Besides this, user can also write specific strings to these files
		to enable/disable/clear ACPI interrupts in user space, which can be
		used to debug some ACPI interrupt storm issues.

		Note that only writting to VALID GPE/Fixed Event is allowed,
		i.e. user can only change the status of runtime GPE and
		Fixed Event with event handler installed.

		Let's take power button fixed event for example, please kill acpid
		and other user space applications so that the machine won't shutdown
		when pressing the power button.
		# cat ff_pwr_btn
		0
		# press the power button for 3 times;
		# cat ff_pwr_btn
		3
		# echo disable > ff_pwr_btn
		# cat ff_pwr_btn
		disable
		# press the power button for 3 times;
		# cat ff_pwr_btn
		disable
		# echo enable > ff_pwr_btn
		# cat ff_pwr_btn
		4
		/*
		 * this is because the status bit is set even if the enable bit is cleared,
		 * and it triggers an ACPI fixed event when the enable bit is set again
		 */
		# press the power button for 3 times;
		# cat ff_pwr_btn
		7
		# echo disable > ff_pwr_btn
		# press the power button for 3 times;
		# echo clear > ff_pwr_btn	/* clear the status bit */
		# echo disable > ff_pwr_btn
		# cat ff_pwr_btn
		7
+1 −1
Original line number Diff line number Diff line
@@ -377,7 +377,7 @@ Bug Reporting
bugzilla.kernel.org is where the Linux kernel developers track kernel
bugs.  Users are encouraged to report all bugs that they find in this
tool.  For details on how to use the kernel bugzilla, please see:
	http://test.kernel.org/bugzilla/faq.html
	http://bugzilla.kernel.org/page.cgi?id=faq.html

The file REPORTING-BUGS in the main kernel source directory has a good
template for how to report a possible kernel bug, and details what kind
+28 −9
Original line number Diff line number Diff line
ChangeLog:
	Started by Ingo Molnar <mingo@redhat.com>
	Update by Max Krasnyansky <maxk@qualcomm.com>

SMP IRQ affinity, started by Ingo Molnar <mingo@redhat.com>

SMP IRQ affinity

/proc/irq/IRQ#/smp_affinity specifies which target CPUs are permitted
for a given IRQ source. It's a bitmask of allowed CPUs. It's not allowed
to turn off all CPUs, and if an IRQ controller does not support IRQ
affinity then the value will not change from the default 0xffffffff.

/proc/irq/default_smp_affinity specifies default affinity mask that applies
to all non-active IRQs. Once IRQ is allocated/activated its affinity bitmask
will be set to the default mask. It can then be changed as described above.
Default mask is 0xffffffff.

Here is an example of restricting IRQ44 (eth1) to CPU0-3 then restricting
the IRQ to CPU4-7 (this is an 8-CPU SMP box):
it to CPU4-7 (this is an 8-CPU SMP box):

[root@moon 44]# cd /proc/irq/44
[root@moon 44]# cat smp_affinity
ffffffff

[root@moon 44]# echo 0f > smp_affinity
[root@moon 44]# cat smp_affinity
0000000f
@@ -21,17 +30,27 @@ PING hell (195.4.7.3): 56 data bytes
--- hell ping statistics ---
6029 packets transmitted, 6027 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.1/0.4 ms
[root@moon 44]# cat /proc/interrupts | grep 44:
 44:          0       1785       1785       1783       1783          1
1          0   IO-APIC-level  eth1
[root@moon 44]# cat /proc/interrupts | grep 'CPU\|44:'
           CPU0       CPU1       CPU2       CPU3      CPU4       CPU5        CPU6       CPU7
 44:       1068       1785       1785       1783         0          0           0         0    IO-APIC-level  eth1

As can be seen from the line above IRQ44 was delivered only to the first four
processors (0-3).
Now lets restrict that IRQ to CPU(4-7).

[root@moon 44]# echo f0 > smp_affinity
[root@moon 44]# cat smp_affinity
000000f0
[root@moon 44]# ping -f h
PING hell (195.4.7.3): 56 data bytes
..
--- hell ping statistics ---
2779 packets transmitted, 2777 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.5/585.4 ms
[root@moon 44]# cat /proc/interrupts | grep 44:
 44:       1068       1785       1785       1784       1784       1069       1070       1069   IO-APIC-level  eth1
[root@moon 44]#
[root@moon 44]# cat /proc/interrupts |  'CPU\|44:'
           CPU0       CPU1       CPU2       CPU3      CPU4       CPU5        CPU6       CPU7
 44:       1068       1785       1785       1783      1784       1069        1070       1069   IO-APIC-level  eth1

This time around IRQ44 was delivered only to the last four processors.
i.e counters for the CPU0-3 did not change.
Loading