All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch v2 0/3] mm: improve page aging fairness between zones/nodes
@ 2013-08-02 15:37 ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-02 15:37 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

Changes in version 2:
o remove per-cpu counter inaccuracy noise from Changelog of kswapd
  NUMA fix (Andrew)
o make fairness allocator work correctly with zone_reclaim_mode
  enabled (Andrea)
o make allocation batch accounting non-atomic (Andrea)

The way the page allocator interacts with kswapd creates aging
imbalances, where the amount of time a userspace page gets in memory
under reclaim pressure is dependent on which zone, which node the
allocator took the page frame from.

#1 fixes missed kswapd wakeups on NUMA systems, which lead to some
   nodes falling behind for a full reclaim cycle relative to the other
   nodes in the system

#3 fixes an interaction where kswapd and a continuous stream of page
   allocations keep the preferred zone of a task between the high and
   low watermark (allocations succeed + kswapd does not go to sleep)
   indefinitely, completely underutilizing the lower zones and
   thrashing on the preferred zone

The following test ran a foreground workload (memcachetest) with
background IO of various sizes on a 4 node 8G system (similar results
were observed with single-node 4G systems):

parallelio
                                              BASE                   FAIRALLOC
Ops memcachetest-0M              5170.00 (  0.00%)           5283.00 (  2.19%)
Ops memcachetest-791M            4740.00 (  0.00%)           5293.00 ( 11.67%)
Ops memcachetest-2639M           2551.00 (  0.00%)           4950.00 ( 94.04%)
Ops memcachetest-4487M           2606.00 (  0.00%)           3922.00 ( 50.50%)
Ops io-duration-0M                  0.00 (  0.00%)              0.00 (  0.00%)
Ops io-duration-791M               55.00 (  0.00%)             18.00 ( 67.27%)
Ops io-duration-2639M             235.00 (  0.00%)            103.00 ( 56.17%)
Ops io-duration-4487M             278.00 (  0.00%)            173.00 ( 37.77%)
Ops swaptotal-0M                    0.00 (  0.00%)              0.00 (  0.00%)
Ops swaptotal-791M             245184.00 (  0.00%)              0.00 (  0.00%)
Ops swaptotal-2639M            468069.00 (  0.00%)         108778.00 ( 76.76%)
Ops swaptotal-4487M            452529.00 (  0.00%)          76623.00 ( 83.07%)
Ops swapin-0M                       0.00 (  0.00%)              0.00 (  0.00%)
Ops swapin-791M                108297.00 (  0.00%)              0.00 (  0.00%)
Ops swapin-2639M               169537.00 (  0.00%)          50031.00 ( 70.49%)
Ops swapin-4487M               167435.00 (  0.00%)          34178.00 ( 79.59%)
Ops minorfaults-0M            1518666.00 (  0.00%)        1503993.00 (  0.97%)
Ops minorfaults-791M          1676963.00 (  0.00%)        1520115.00 (  9.35%)
Ops minorfaults-2639M         1606035.00 (  0.00%)        1799717.00 (-12.06%)
Ops minorfaults-4487M         1612118.00 (  0.00%)        1583825.00 (  1.76%)
Ops majorfaults-0M                  6.00 (  0.00%)              0.00 (  0.00%)
Ops majorfaults-791M            13836.00 (  0.00%)             10.00 ( 99.93%)
Ops majorfaults-2639M           22307.00 (  0.00%)           6490.00 ( 70.91%)
Ops majorfaults-4487M           21631.00 (  0.00%)           4380.00 ( 79.75%)

Positive percentage means improvement, negative regression.

                BASE   FAIRALLOC
User          287.78      460.97
System       2151.67     3142.51
Elapsed      9737.00     8879.34

Memcachetest, the foreground workload, runs for a fixed duration,
which is why user and system time increased so much: memcachetest
spends more time doing actual work and less time waiting for IO.

The elapsed time came down because the background IO on the other hand
is fixed in size and throughput increased.

                                  BASE   FAIRALLOC
Minor Faults                  53721925    57188551
Major Faults                    392195       15157
Swap Ins                       2994854      112770
Swap Outs                      4907092      134982
Direct pages scanned                 0       41824
Kswapd pages scanned          32975063     8128269
Kswapd pages reclaimed         6323069     7093495
Direct pages reclaimed               0       41824
Kswapd efficiency                  19%         87%
Kswapd velocity               3386.573     915.414
Direct efficiency                 100%        100%
Direct velocity                  0.000       4.710
Percentage direct scans             0%          0%
Zone normal velocity          2011.338     550.661
Zone dma32 velocity           1365.623     369.221
Zone dma velocity                9.612       0.242
Page writes by reclaim    18732404.000  614807.000
Page writes file              13825312      479825
Page writes anon               4907092      134982
Page reclaim immediate           85490        5647
Sector Reads                  12080532      483244
Sector Writes                 88740508    65438876
Page rescued immediate               0           0
Slabs scanned                    82560       12160
Direct inode steals                  0           0
Kswapd inode steals              24401       40013
Kswapd skipped wait                  0           0
THP fault alloc                      6           8
THP collapse alloc                5481        5812
THP splits                          75          22
THP fault fallback                   0           0
THP collapse fail                    0           0
Compaction stalls                    0          54
Compaction success                   0          45
Compaction failures                  0           9
Page migrate success            881492       82278
Page migrate failure                 0           0
Compaction pages isolated            0       60334
Compaction migrate scanned           0       53505
Compaction free scanned              0     1537605
Compaction cost                    914          86
NUMA PTE updates              46738231    41988419
NUMA hint faults              31175564    24213387
NUMA hint local faults        10427393     6411593
NUMA pages migrated             881492       55344
AutoNUMA cost                   156221      121361

The overall runtime was reduced, throughput for both the foreground
workload as well as the background IO improved, major faults, swapping
and reclaim activity shrunk significantly, reclaim efficiency more
than quadrupled.

 include/linux/mmzone.h |  1 +
 mm/page_alloc.c        | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
 mm/vmscan.c            |  2 +-
 3 files changed, 69 insertions(+), 19 deletions(-)


^ permalink raw reply	[flat|nested] 82+ messages in thread

* [patch v2 0/3] mm: improve page aging fairness between zones/nodes
@ 2013-08-02 15:37 ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-02 15:37 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

Changes in version 2:
o remove per-cpu counter inaccuracy noise from Changelog of kswapd
  NUMA fix (Andrew)
o make fairness allocator work correctly with zone_reclaim_mode
  enabled (Andrea)
o make allocation batch accounting non-atomic (Andrea)

The way the page allocator interacts with kswapd creates aging
imbalances, where the amount of time a userspace page gets in memory
under reclaim pressure is dependent on which zone, which node the
allocator took the page frame from.

#1 fixes missed kswapd wakeups on NUMA systems, which lead to some
   nodes falling behind for a full reclaim cycle relative to the other
   nodes in the system

#3 fixes an interaction where kswapd and a continuous stream of page
   allocations keep the preferred zone of a task between the high and
   low watermark (allocations succeed + kswapd does not go to sleep)
   indefinitely, completely underutilizing the lower zones and
   thrashing on the preferred zone

The following test ran a foreground workload (memcachetest) with
background IO of various sizes on a 4 node 8G system (similar results
were observed with single-node 4G systems):

parallelio
                                              BASE                   FAIRALLOC
Ops memcachetest-0M              5170.00 (  0.00%)           5283.00 (  2.19%)
Ops memcachetest-791M            4740.00 (  0.00%)           5293.00 ( 11.67%)
Ops memcachetest-2639M           2551.00 (  0.00%)           4950.00 ( 94.04%)
Ops memcachetest-4487M           2606.00 (  0.00%)           3922.00 ( 50.50%)
Ops io-duration-0M                  0.00 (  0.00%)              0.00 (  0.00%)
Ops io-duration-791M               55.00 (  0.00%)             18.00 ( 67.27%)
Ops io-duration-2639M             235.00 (  0.00%)            103.00 ( 56.17%)
Ops io-duration-4487M             278.00 (  0.00%)            173.00 ( 37.77%)
Ops swaptotal-0M                    0.00 (  0.00%)              0.00 (  0.00%)
Ops swaptotal-791M             245184.00 (  0.00%)              0.00 (  0.00%)
Ops swaptotal-2639M            468069.00 (  0.00%)         108778.00 ( 76.76%)
Ops swaptotal-4487M            452529.00 (  0.00%)          76623.00 ( 83.07%)
Ops swapin-0M                       0.00 (  0.00%)              0.00 (  0.00%)
Ops swapin-791M                108297.00 (  0.00%)              0.00 (  0.00%)
Ops swapin-2639M               169537.00 (  0.00%)          50031.00 ( 70.49%)
Ops swapin-4487M               167435.00 (  0.00%)          34178.00 ( 79.59%)
Ops minorfaults-0M            1518666.00 (  0.00%)        1503993.00 (  0.97%)
Ops minorfaults-791M          1676963.00 (  0.00%)        1520115.00 (  9.35%)
Ops minorfaults-2639M         1606035.00 (  0.00%)        1799717.00 (-12.06%)
Ops minorfaults-4487M         1612118.00 (  0.00%)        1583825.00 (  1.76%)
Ops majorfaults-0M                  6.00 (  0.00%)              0.00 (  0.00%)
Ops majorfaults-791M            13836.00 (  0.00%)             10.00 ( 99.93%)
Ops majorfaults-2639M           22307.00 (  0.00%)           6490.00 ( 70.91%)
Ops majorfaults-4487M           21631.00 (  0.00%)           4380.00 ( 79.75%)

Positive percentage means improvement, negative regression.

                BASE   FAIRALLOC
User          287.78      460.97
System       2151.67     3142.51
Elapsed      9737.00     8879.34

Memcachetest, the foreground workload, runs for a fixed duration,
which is why user and system time increased so much: memcachetest
spends more time doing actual work and less time waiting for IO.

The elapsed time came down because the background IO on the other hand
is fixed in size and throughput increased.

                                  BASE   FAIRALLOC
Minor Faults                  53721925    57188551
Major Faults                    392195       15157
Swap Ins                       2994854      112770
Swap Outs                      4907092      134982
Direct pages scanned                 0       41824
Kswapd pages scanned          32975063     8128269
Kswapd pages reclaimed         6323069     7093495
Direct pages reclaimed               0       41824
Kswapd efficiency                  19%         87%
Kswapd velocity               3386.573     915.414
Direct efficiency                 100%        100%
Direct velocity                  0.000       4.710
Percentage direct scans             0%          0%
Zone normal velocity          2011.338     550.661
Zone dma32 velocity           1365.623     369.221
Zone dma velocity                9.612       0.242
Page writes by reclaim    18732404.000  614807.000
Page writes file              13825312      479825
Page writes anon               4907092      134982
Page reclaim immediate           85490        5647
Sector Reads                  12080532      483244
Sector Writes                 88740508    65438876
Page rescued immediate               0           0
Slabs scanned                    82560       12160
Direct inode steals                  0           0
Kswapd inode steals              24401       40013
Kswapd skipped wait                  0           0
THP fault alloc                      6           8
THP collapse alloc                5481        5812
THP splits                          75          22
THP fault fallback                   0           0
THP collapse fail                    0           0
Compaction stalls                    0          54
Compaction success                   0          45
Compaction failures                  0           9
Page migrate success            881492       82278
Page migrate failure                 0           0
Compaction pages isolated            0       60334
Compaction migrate scanned           0       53505
Compaction free scanned              0     1537605
Compaction cost                    914          86
NUMA PTE updates              46738231    41988419
NUMA hint faults              31175564    24213387
NUMA hint local faults        10427393     6411593
NUMA pages migrated             881492       55344
AutoNUMA cost                   156221      121361

The overall runtime was reduced, throughput for both the foreground
workload as well as the background IO improved, major faults, swapping
and reclaim activity shrunk significantly, reclaim efficiency more
than quadrupled.

 include/linux/mmzone.h |  1 +
 mm/page_alloc.c        | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
 mm/vmscan.c            |  2 +-
 3 files changed, 69 insertions(+), 19 deletions(-)

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* [patch v2 1/3] mm: vmscan: fix numa reclaim balance problem in kswapd
  2013-08-02 15:37 ` Johannes Weiner
@ 2013-08-02 15:37   ` Johannes Weiner
  -1 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-02 15:37 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

When the page allocator fails to get a page from all zones in its
given zonelist, it wakes up the per-node kswapds for all zones that
are at their low watermark.

However, with a system under load the free pages in a zone can
fluctuate enough that the allocation fails but the kswapd wakeup is
also skipped while the zone is still really close to the low
watermark.

When one node misses a wakeup like this, it won't be aged before all
the other node's zones are down to their low watermarks again.  And
skipping a full aging cycle is an obvious fairness problem.

Kswapd runs until the high watermarks are restored, so it should also
be woken when the high watermarks are not met.  This ages nodes more
equally and creates a safety margin for the page counter fluctuation.

By using zone_balanced(), it will now check, in addition to the
watermark, if compaction requires more order-0 pages to create a
higher order page.

Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Reviewed-by: Rik van Riel <riel@redhat.com>
---
 mm/vmscan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index 2cff0d4..758540d 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -3237,7 +3237,7 @@ void wakeup_kswapd(struct zone *zone, int order, enum zone_type classzone_idx)
 	}
 	if (!waitqueue_active(&pgdat->kswapd_wait))
 		return;
-	if (zone_watermark_ok_safe(zone, order, low_wmark_pages(zone), 0, 0))
+	if (zone_balanced(zone, order, 0, 0))
 		return;
 
 	trace_mm_vmscan_wakeup_kswapd(pgdat->node_id, zone_idx(zone), order);
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [patch v2 1/3] mm: vmscan: fix numa reclaim balance problem in kswapd
@ 2013-08-02 15:37   ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-02 15:37 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

When the page allocator fails to get a page from all zones in its
given zonelist, it wakes up the per-node kswapds for all zones that
are at their low watermark.

However, with a system under load the free pages in a zone can
fluctuate enough that the allocation fails but the kswapd wakeup is
also skipped while the zone is still really close to the low
watermark.

When one node misses a wakeup like this, it won't be aged before all
the other node's zones are down to their low watermarks again.  And
skipping a full aging cycle is an obvious fairness problem.

Kswapd runs until the high watermarks are restored, so it should also
be woken when the high watermarks are not met.  This ages nodes more
equally and creates a safety margin for the page counter fluctuation.

By using zone_balanced(), it will now check, in addition to the
watermark, if compaction requires more order-0 pages to create a
higher order page.

Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Reviewed-by: Rik van Riel <riel@redhat.com>
---
 mm/vmscan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index 2cff0d4..758540d 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -3237,7 +3237,7 @@ void wakeup_kswapd(struct zone *zone, int order, enum zone_type classzone_idx)
 	}
 	if (!waitqueue_active(&pgdat->kswapd_wait))
 		return;
-	if (zone_watermark_ok_safe(zone, order, low_wmark_pages(zone), 0, 0))
+	if (zone_balanced(zone, order, 0, 0))
 		return;
 
 	trace_mm_vmscan_wakeup_kswapd(pgdat->node_id, zone_idx(zone), order);
-- 
1.8.3.2

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [patch v2 2/3] mm: page_alloc: rearrange watermark checking in get_page_from_freelist
  2013-08-02 15:37 ` Johannes Weiner
@ 2013-08-02 15:37   ` Johannes Weiner
  -1 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-02 15:37 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

Allocations that do not have to respect the watermarks are rare
high-priority events.  Reorder the code such that per-zone dirty
limits and future checks important only to regular page allocations
are ignored in these extraordinary situations.

Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Reviewed-by: Rik van Riel <riel@redhat.com>
---
 mm/page_alloc.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index bf9d7c1..3b27d3e 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1889,12 +1889,17 @@ zonelist_scan:
 	 */
 	for_each_zone_zonelist_nodemask(zone, z, zonelist,
 						high_zoneidx, nodemask) {
+		unsigned long mark;
+
 		if (IS_ENABLED(CONFIG_NUMA) && zlc_active &&
 			!zlc_zone_worth_trying(zonelist, z, allowednodes))
 				continue;
 		if ((alloc_flags & ALLOC_CPUSET) &&
 			!cpuset_zone_allowed_softwall(zone, gfp_mask))
 				continue;
+		BUILD_BUG_ON(ALLOC_NO_WATERMARKS < NR_WMARK);
+		if (alloc_flags & ALLOC_NO_WATERMARKS)
+			goto try_this_zone;
 		/*
 		 * When allocating a page cache page for writing, we
 		 * want to get it from a zone that is within its dirty
@@ -1925,16 +1930,11 @@ zonelist_scan:
 		    (gfp_mask & __GFP_WRITE) && !zone_dirty_ok(zone))
 			goto this_zone_full;
 
-		BUILD_BUG_ON(ALLOC_NO_WATERMARKS < NR_WMARK);
-		if (!(alloc_flags & ALLOC_NO_WATERMARKS)) {
-			unsigned long mark;
+		mark = zone->watermark[alloc_flags & ALLOC_WMARK_MASK];
+		if (!zone_watermark_ok(zone, order, mark,
+				       classzone_idx, alloc_flags)) {
 			int ret;
 
-			mark = zone->watermark[alloc_flags & ALLOC_WMARK_MASK];
-			if (zone_watermark_ok(zone, order, mark,
-				    classzone_idx, alloc_flags))
-				goto try_this_zone;
-
 			if (IS_ENABLED(CONFIG_NUMA) &&
 					!did_zlc_setup && nr_online_nodes > 1) {
 				/*
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [patch v2 2/3] mm: page_alloc: rearrange watermark checking in get_page_from_freelist
@ 2013-08-02 15:37   ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-02 15:37 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

Allocations that do not have to respect the watermarks are rare
high-priority events.  Reorder the code such that per-zone dirty
limits and future checks important only to regular page allocations
are ignored in these extraordinary situations.

Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Reviewed-by: Rik van Riel <riel@redhat.com>
---
 mm/page_alloc.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index bf9d7c1..3b27d3e 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1889,12 +1889,17 @@ zonelist_scan:
 	 */
 	for_each_zone_zonelist_nodemask(zone, z, zonelist,
 						high_zoneidx, nodemask) {
+		unsigned long mark;
+
 		if (IS_ENABLED(CONFIG_NUMA) && zlc_active &&
 			!zlc_zone_worth_trying(zonelist, z, allowednodes))
 				continue;
 		if ((alloc_flags & ALLOC_CPUSET) &&
 			!cpuset_zone_allowed_softwall(zone, gfp_mask))
 				continue;
+		BUILD_BUG_ON(ALLOC_NO_WATERMARKS < NR_WMARK);
+		if (alloc_flags & ALLOC_NO_WATERMARKS)
+			goto try_this_zone;
 		/*
 		 * When allocating a page cache page for writing, we
 		 * want to get it from a zone that is within its dirty
@@ -1925,16 +1930,11 @@ zonelist_scan:
 		    (gfp_mask & __GFP_WRITE) && !zone_dirty_ok(zone))
 			goto this_zone_full;
 
-		BUILD_BUG_ON(ALLOC_NO_WATERMARKS < NR_WMARK);
-		if (!(alloc_flags & ALLOC_NO_WATERMARKS)) {
-			unsigned long mark;
+		mark = zone->watermark[alloc_flags & ALLOC_WMARK_MASK];
+		if (!zone_watermark_ok(zone, order, mark,
+				       classzone_idx, alloc_flags)) {
 			int ret;
 
-			mark = zone->watermark[alloc_flags & ALLOC_WMARK_MASK];
-			if (zone_watermark_ok(zone, order, mark,
-				    classzone_idx, alloc_flags))
-				goto try_this_zone;
-
 			if (IS_ENABLED(CONFIG_NUMA) &&
 					!did_zlc_setup && nr_online_nodes > 1) {
 				/*
-- 
1.8.3.2

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-02 15:37 ` Johannes Weiner
@ 2013-08-02 15:37   ` Johannes Weiner
  -1 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-02 15:37 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

Each zone that holds userspace pages of one workload must be aged at a
speed proportional to the zone size.  Otherwise, the time an
individual page gets to stay in memory depends on the zone it happened
to be allocated in.  Asymmetry in the zone aging creates rather
unpredictable aging behavior and results in the wrong pages being
reclaimed, activated etc.

But exactly this happens right now because of the way the page
allocator and kswapd interact.  The page allocator uses per-node lists
of all zones in the system, ordered by preference, when allocating a
new page.  When the first iteration does not yield any results, kswapd
is woken up and the allocator retries.  Due to the way kswapd reclaims
zones below the high watermark while a zone can be allocated from when
it is above the low watermark, the allocator may keep kswapd running
while kswapd reclaim ensures that the page allocator can keep
allocating from the first zone in the zonelist for extended periods of
time.  Meanwhile the other zones rarely see new allocations and thus
get aged much slower in comparison.

The result is that the occasional page placed in lower zones gets
relatively more time in memory, even gets promoted to the active list
after its peers have long been evicted.  Meanwhile, the bulk of the
working set may be thrashing on the preferred zone even though there
may be significant amounts of memory available in the lower zones.

Even the most basic test -- repeatedly reading a file slightly bigger
than memory -- shows how broken the zone aging is.  In this scenario,
no single page should be able stay in memory long enough to get
referenced twice and activated, but activation happens in spades:

  $ grep active_file /proc/zoneinfo
      nr_inactive_file 0
      nr_active_file 0
      nr_inactive_file 0
      nr_active_file 8
      nr_inactive_file 1582
      nr_active_file 11994
  $ cat data data data data >/dev/null
  $ grep active_file /proc/zoneinfo
      nr_inactive_file 0
      nr_active_file 70
      nr_inactive_file 258753
      nr_active_file 443214
      nr_inactive_file 149793
      nr_active_file 12021

Fix this with a very simple round robin allocator.  Each zone is
allowed a batch of allocations that is proportional to the zone's
size, after which it is treated as full.  The batch counters are reset
when all zones have been tried and the allocator enters the slowpath
and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
spread out to all available/allowable zones:

  $ grep active_file /proc/zoneinfo
      nr_inactive_file 0
      nr_active_file 0
      nr_inactive_file 174
      nr_active_file 4865
      nr_inactive_file 53
      nr_active_file 860
  $ cat data data data data >/dev/null
  $ grep active_file /proc/zoneinfo
      nr_inactive_file 0
      nr_active_file 0
      nr_inactive_file 666622
      nr_active_file 4988
      nr_inactive_file 190969
      nr_active_file 937

When zone_reclaim_mode is enabled, allocations will now spread out to
all zones on the local node, not just the first preferred zone (which
on a 4G node might be a tiny Normal zone).

Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Tested-by: Zlatko Calusic <zcalusic@bitsync.net>
---
 include/linux/mmzone.h |  1 +
 mm/page_alloc.c        | 69 ++++++++++++++++++++++++++++++++++++++++++--------
 2 files changed, 60 insertions(+), 10 deletions(-)

diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index af4a3b7..dcad2ab 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -352,6 +352,7 @@ struct zone {
 	 * free areas of different sizes
 	 */
 	spinlock_t		lock;
+	int			alloc_batch;
 	int                     all_unreclaimable; /* All pages pinned */
 #if defined CONFIG_COMPACTION || defined CONFIG_CMA
 	/* Set to true when the PG_migrate_skip bits should be cleared */
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 3b27d3e..b2cdfd0 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1817,6 +1817,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
 	bitmap_zero(zlc->fullzones, MAX_ZONES_PER_ZONELIST);
 }
 
+static bool zone_local(struct zone *local_zone, struct zone *zone)
+{
+	return node_distance(local_zone->node, zone->node) == LOCAL_DISTANCE;
+}
+
 static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
 {
 	return node_isset(local_zone->node, zone->zone_pgdat->reclaim_nodes);
@@ -1854,6 +1859,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
 {
 }
 
+static bool zone_local(struct zone *local_zone, struct zone *zone)
+{
+	return true;
+}
+
 static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
 {
 	return true;
@@ -1901,6 +1911,26 @@ zonelist_scan:
 		if (alloc_flags & ALLOC_NO_WATERMARKS)
 			goto try_this_zone;
 		/*
+		 * Distribute pages in proportion to the individual
+		 * zone size to ensure fair page aging.  The zone a
+		 * page was allocated in should have no effect on the
+		 * time the page has in memory before being reclaimed.
+		 *
+		 * When zone_reclaim_mode is enabled, try to stay in
+		 * local zones in the fastpath.  If that fails, the
+		 * slowpath is entered, which will do another pass
+		 * starting with the local zones, but ultimately fall
+		 * back to remote zones that do not partake in the
+		 * fairness round-robin cycle of this zonelist.
+		 */
+		if (alloc_flags & ALLOC_WMARK_LOW) {
+			if (zone->alloc_batch <= 0)
+				continue;
+			if (zone_reclaim_mode &&
+			    !zone_local(preferred_zone, zone))
+				continue;
+		}
+		/*
 		 * When allocating a page cache page for writing, we
 		 * want to get it from a zone that is within its dirty
 		 * limit, such that no single zone holds more than its
@@ -2006,7 +2036,8 @@ this_zone_full:
 		goto zonelist_scan;
 	}
 
-	if (page)
+	if (page) {
+		zone->alloc_batch -= 1U << order;
 		/*
 		 * page->pfmemalloc is set when ALLOC_NO_WATERMARKS was
 		 * necessary to allocate the page. The expectation is
@@ -2015,6 +2046,7 @@ this_zone_full:
 		 * for !PFMEMALLOC purposes.
 		 */
 		page->pfmemalloc = !!(alloc_flags & ALLOC_NO_WATERMARKS);
+	}
 
 	return page;
 }
@@ -2346,16 +2378,28 @@ __alloc_pages_high_priority(gfp_t gfp_mask, unsigned int order,
 	return page;
 }
 
-static inline
-void wake_all_kswapd(unsigned int order, struct zonelist *zonelist,
-						enum zone_type high_zoneidx,
-						enum zone_type classzone_idx)
+static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
+			     struct zonelist *zonelist,
+			     enum zone_type high_zoneidx,
+			     struct zone *preferred_zone)
 {
 	struct zoneref *z;
 	struct zone *zone;
 
-	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx)
-		wakeup_kswapd(zone, order, classzone_idx);
+	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
+		if (!(gfp_mask & __GFP_NO_KSWAPD))
+			wakeup_kswapd(zone, order, zone_idx(preferred_zone));
+		/*
+		 * Only reset the batches of zones that were actually
+		 * considered in the fast path, we don't want to
+		 * thrash fairness information for zones that are not
+		 * actually part of this zonelist's round-robin cycle.
+		 */
+		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
+			continue;
+		zone->alloc_batch = high_wmark_pages(zone) -
+			low_wmark_pages(zone);
+	}
 }
 
 static inline int
@@ -2451,9 +2495,8 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
 		goto nopage;
 
 restart:
-	if (!(gfp_mask & __GFP_NO_KSWAPD))
-		wake_all_kswapd(order, zonelist, high_zoneidx,
-						zone_idx(preferred_zone));
+	prepare_slowpath(gfp_mask, order, zonelist,
+			 high_zoneidx, preferred_zone);
 
 	/*
 	 * OK, we're below the kswapd watermark and have kicked background
@@ -4754,6 +4797,9 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
 		zone_seqlock_init(zone);
 		zone->zone_pgdat = pgdat;
 
+		/* For bootup, initialized properly in watermark setup */
+		zone->alloc_batch = zone->managed_pages;
+
 		zone_pcp_init(zone);
 		lruvec_init(&zone->lruvec);
 		if (!size)
@@ -5525,6 +5571,9 @@ static void __setup_per_zone_wmarks(void)
 		zone->watermark[WMARK_LOW]  = min_wmark_pages(zone) + (tmp >> 2);
 		zone->watermark[WMARK_HIGH] = min_wmark_pages(zone) + (tmp >> 1);
 
+		zone->alloc_batch = high_wmark_pages(zone) -
+			low_wmark_pages(zone);
+
 		setup_zone_migrate_reserve(zone);
 		spin_unlock_irqrestore(&zone->lock, flags);
 	}
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-02 15:37   ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-02 15:37 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

Each zone that holds userspace pages of one workload must be aged at a
speed proportional to the zone size.  Otherwise, the time an
individual page gets to stay in memory depends on the zone it happened
to be allocated in.  Asymmetry in the zone aging creates rather
unpredictable aging behavior and results in the wrong pages being
reclaimed, activated etc.

But exactly this happens right now because of the way the page
allocator and kswapd interact.  The page allocator uses per-node lists
of all zones in the system, ordered by preference, when allocating a
new page.  When the first iteration does not yield any results, kswapd
is woken up and the allocator retries.  Due to the way kswapd reclaims
zones below the high watermark while a zone can be allocated from when
it is above the low watermark, the allocator may keep kswapd running
while kswapd reclaim ensures that the page allocator can keep
allocating from the first zone in the zonelist for extended periods of
time.  Meanwhile the other zones rarely see new allocations and thus
get aged much slower in comparison.

The result is that the occasional page placed in lower zones gets
relatively more time in memory, even gets promoted to the active list
after its peers have long been evicted.  Meanwhile, the bulk of the
working set may be thrashing on the preferred zone even though there
may be significant amounts of memory available in the lower zones.

Even the most basic test -- repeatedly reading a file slightly bigger
than memory -- shows how broken the zone aging is.  In this scenario,
no single page should be able stay in memory long enough to get
referenced twice and activated, but activation happens in spades:

  $ grep active_file /proc/zoneinfo
      nr_inactive_file 0
      nr_active_file 0
      nr_inactive_file 0
      nr_active_file 8
      nr_inactive_file 1582
      nr_active_file 11994
  $ cat data data data data >/dev/null
  $ grep active_file /proc/zoneinfo
      nr_inactive_file 0
      nr_active_file 70
      nr_inactive_file 258753
      nr_active_file 443214
      nr_inactive_file 149793
      nr_active_file 12021

Fix this with a very simple round robin allocator.  Each zone is
allowed a batch of allocations that is proportional to the zone's
size, after which it is treated as full.  The batch counters are reset
when all zones have been tried and the allocator enters the slowpath
and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
spread out to all available/allowable zones:

  $ grep active_file /proc/zoneinfo
      nr_inactive_file 0
      nr_active_file 0
      nr_inactive_file 174
      nr_active_file 4865
      nr_inactive_file 53
      nr_active_file 860
  $ cat data data data data >/dev/null
  $ grep active_file /proc/zoneinfo
      nr_inactive_file 0
      nr_active_file 0
      nr_inactive_file 666622
      nr_active_file 4988
      nr_inactive_file 190969
      nr_active_file 937

When zone_reclaim_mode is enabled, allocations will now spread out to
all zones on the local node, not just the first preferred zone (which
on a 4G node might be a tiny Normal zone).

Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Tested-by: Zlatko Calusic <zcalusic@bitsync.net>
---
 include/linux/mmzone.h |  1 +
 mm/page_alloc.c        | 69 ++++++++++++++++++++++++++++++++++++++++++--------
 2 files changed, 60 insertions(+), 10 deletions(-)

diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index af4a3b7..dcad2ab 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -352,6 +352,7 @@ struct zone {
 	 * free areas of different sizes
 	 */
 	spinlock_t		lock;
+	int			alloc_batch;
 	int                     all_unreclaimable; /* All pages pinned */
 #if defined CONFIG_COMPACTION || defined CONFIG_CMA
 	/* Set to true when the PG_migrate_skip bits should be cleared */
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 3b27d3e..b2cdfd0 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1817,6 +1817,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
 	bitmap_zero(zlc->fullzones, MAX_ZONES_PER_ZONELIST);
 }
 
+static bool zone_local(struct zone *local_zone, struct zone *zone)
+{
+	return node_distance(local_zone->node, zone->node) == LOCAL_DISTANCE;
+}
+
 static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
 {
 	return node_isset(local_zone->node, zone->zone_pgdat->reclaim_nodes);
@@ -1854,6 +1859,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
 {
 }
 
+static bool zone_local(struct zone *local_zone, struct zone *zone)
+{
+	return true;
+}
+
 static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
 {
 	return true;
@@ -1901,6 +1911,26 @@ zonelist_scan:
 		if (alloc_flags & ALLOC_NO_WATERMARKS)
 			goto try_this_zone;
 		/*
+		 * Distribute pages in proportion to the individual
+		 * zone size to ensure fair page aging.  The zone a
+		 * page was allocated in should have no effect on the
+		 * time the page has in memory before being reclaimed.
+		 *
+		 * When zone_reclaim_mode is enabled, try to stay in
+		 * local zones in the fastpath.  If that fails, the
+		 * slowpath is entered, which will do another pass
+		 * starting with the local zones, but ultimately fall
+		 * back to remote zones that do not partake in the
+		 * fairness round-robin cycle of this zonelist.
+		 */
+		if (alloc_flags & ALLOC_WMARK_LOW) {
+			if (zone->alloc_batch <= 0)
+				continue;
+			if (zone_reclaim_mode &&
+			    !zone_local(preferred_zone, zone))
+				continue;
+		}
+		/*
 		 * When allocating a page cache page for writing, we
 		 * want to get it from a zone that is within its dirty
 		 * limit, such that no single zone holds more than its
@@ -2006,7 +2036,8 @@ this_zone_full:
 		goto zonelist_scan;
 	}
 
-	if (page)
+	if (page) {
+		zone->alloc_batch -= 1U << order;
 		/*
 		 * page->pfmemalloc is set when ALLOC_NO_WATERMARKS was
 		 * necessary to allocate the page. The expectation is
@@ -2015,6 +2046,7 @@ this_zone_full:
 		 * for !PFMEMALLOC purposes.
 		 */
 		page->pfmemalloc = !!(alloc_flags & ALLOC_NO_WATERMARKS);
+	}
 
 	return page;
 }
@@ -2346,16 +2378,28 @@ __alloc_pages_high_priority(gfp_t gfp_mask, unsigned int order,
 	return page;
 }
 
-static inline
-void wake_all_kswapd(unsigned int order, struct zonelist *zonelist,
-						enum zone_type high_zoneidx,
-						enum zone_type classzone_idx)
+static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
+			     struct zonelist *zonelist,
+			     enum zone_type high_zoneidx,
+			     struct zone *preferred_zone)
 {
 	struct zoneref *z;
 	struct zone *zone;
 
-	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx)
-		wakeup_kswapd(zone, order, classzone_idx);
+	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
+		if (!(gfp_mask & __GFP_NO_KSWAPD))
+			wakeup_kswapd(zone, order, zone_idx(preferred_zone));
+		/*
+		 * Only reset the batches of zones that were actually
+		 * considered in the fast path, we don't want to
+		 * thrash fairness information for zones that are not
+		 * actually part of this zonelist's round-robin cycle.
+		 */
+		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
+			continue;
+		zone->alloc_batch = high_wmark_pages(zone) -
+			low_wmark_pages(zone);
+	}
 }
 
 static inline int
@@ -2451,9 +2495,8 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
 		goto nopage;
 
 restart:
-	if (!(gfp_mask & __GFP_NO_KSWAPD))
-		wake_all_kswapd(order, zonelist, high_zoneidx,
-						zone_idx(preferred_zone));
+	prepare_slowpath(gfp_mask, order, zonelist,
+			 high_zoneidx, preferred_zone);
 
 	/*
 	 * OK, we're below the kswapd watermark and have kicked background
@@ -4754,6 +4797,9 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
 		zone_seqlock_init(zone);
 		zone->zone_pgdat = pgdat;
 
+		/* For bootup, initialized properly in watermark setup */
+		zone->alloc_batch = zone->managed_pages;
+
 		zone_pcp_init(zone);
 		lruvec_init(&zone->lruvec);
 		if (!size)
@@ -5525,6 +5571,9 @@ static void __setup_per_zone_wmarks(void)
 		zone->watermark[WMARK_LOW]  = min_wmark_pages(zone) + (tmp >> 2);
 		zone->watermark[WMARK_HIGH] = min_wmark_pages(zone) + (tmp >> 1);
 
+		zone->alloc_batch = high_wmark_pages(zone) -
+			low_wmark_pages(zone);
+
 		setup_zone_migrate_reserve(zone);
 		spin_unlock_irqrestore(&zone->lock, flags);
 	}
-- 
1.8.3.2

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply related	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-02 15:37   ` Johannes Weiner
@ 2013-08-02 17:51     ` Rik van Riel
  -1 siblings, 0 replies; 82+ messages in thread
From: Rik van Riel @ 2013-08-02 17:51 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Mel Gorman, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On 08/02/2013 11:37 AM, Johannes Weiner wrote:
> Each zone that holds userspace pages of one workload must be aged at a
> speed proportional to the zone size.  Otherwise, the time an
> individual page gets to stay in memory depends on the zone it happened
> to be allocated in.  Asymmetry in the zone aging creates rather
> unpredictable aging behavior and results in the wrong pages being
> reclaimed, activated etc.


> When zone_reclaim_mode is enabled, allocations will now spread out to
> all zones on the local node, not just the first preferred zone (which
> on a 4G node might be a tiny Normal zone).
>
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> Tested-by: Zlatko Calusic <zcalusic@bitsync.net>

Reviewed-by: Rik van Riel <riel@redhat.com>


-- 
All rights reversed.

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-02 17:51     ` Rik van Riel
  0 siblings, 0 replies; 82+ messages in thread
From: Rik van Riel @ 2013-08-02 17:51 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Mel Gorman, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On 08/02/2013 11:37 AM, Johannes Weiner wrote:
> Each zone that holds userspace pages of one workload must be aged at a
> speed proportional to the zone size.  Otherwise, the time an
> individual page gets to stay in memory depends on the zone it happened
> to be allocated in.  Asymmetry in the zone aging creates rather
> unpredictable aging behavior and results in the wrong pages being
> reclaimed, activated etc.


> When zone_reclaim_mode is enabled, allocations will now spread out to
> all zones on the local node, not just the first preferred zone (which
> on a 4G node might be a tiny Normal zone).
>
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> Tested-by: Zlatko Calusic <zcalusic@bitsync.net>

Reviewed-by: Rik van Riel <riel@redhat.com>


-- 
All rights reversed.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 0/3] mm: improve page aging fairness between zones/nodes
  2013-08-02 15:37 ` Johannes Weiner
@ 2013-08-02 19:59   ` Andrea Arcangeli
  -1 siblings, 0 replies; 82+ messages in thread
From: Andrea Arcangeli @ 2013-08-02 19:59 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Mel Gorman, Rik van Riel, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Fri, Aug 02, 2013 at 11:37:23AM -0400, Johannes Weiner wrote:
> Changes in version 2:

v2 looks great to me.

                zone->alloc_batch -= 1U << order;
    3147:       d3 e0                   shl    %cl,%eax
    3149:       29 42 54                sub    %eax,0x54(%rdx)

gcc builds it as one asm insn too.

Considering we depend on gcc to be optimal and to update ptes in a
single insn (and if it doesn't we'll corrupt memory), keeping it in C
should always provide the update in a single insn.

I believe the error introduced when mulptiple CPUs of the same NUMA
node step on each other is going to be unmeasurable.

ACK the whole series.

Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>

Thanks,
Andrea

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 0/3] mm: improve page aging fairness between zones/nodes
@ 2013-08-02 19:59   ` Andrea Arcangeli
  0 siblings, 0 replies; 82+ messages in thread
From: Andrea Arcangeli @ 2013-08-02 19:59 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Mel Gorman, Rik van Riel, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Fri, Aug 02, 2013 at 11:37:23AM -0400, Johannes Weiner wrote:
> Changes in version 2:

v2 looks great to me.

                zone->alloc_batch -= 1U << order;
    3147:       d3 e0                   shl    %cl,%eax
    3149:       29 42 54                sub    %eax,0x54(%rdx)

gcc builds it as one asm insn too.

Considering we depend on gcc to be optimal and to update ptes in a
single insn (and if it doesn't we'll corrupt memory), keeping it in C
should always provide the update in a single insn.

I believe the error introduced when mulptiple CPUs of the same NUMA
node step on each other is going to be unmeasurable.

ACK the whole series.

Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>

Thanks,
Andrea

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-02 15:37   ` Johannes Weiner
@ 2013-08-05  1:15     ` Minchan Kim
  -1 siblings, 0 replies; 82+ messages in thread
From: Minchan Kim @ 2013-08-05  1:15 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, linux-mm, linux-kernel

Hello Hannes,

On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> Each zone that holds userspace pages of one workload must be aged at a
> speed proportional to the zone size.  Otherwise, the time an
> individual page gets to stay in memory depends on the zone it happened
> to be allocated in.  Asymmetry in the zone aging creates rather
> unpredictable aging behavior and results in the wrong pages being
> reclaimed, activated etc.
> 
> But exactly this happens right now because of the way the page
> allocator and kswapd interact.  The page allocator uses per-node lists
> of all zones in the system, ordered by preference, when allocating a
> new page.  When the first iteration does not yield any results, kswapd
> is woken up and the allocator retries.  Due to the way kswapd reclaims
> zones below the high watermark while a zone can be allocated from when
> it is above the low watermark, the allocator may keep kswapd running
> while kswapd reclaim ensures that the page allocator can keep
> allocating from the first zone in the zonelist for extended periods of
> time.  Meanwhile the other zones rarely see new allocations and thus
> get aged much slower in comparison.
> 
> The result is that the occasional page placed in lower zones gets
> relatively more time in memory, even gets promoted to the active list
> after its peers have long been evicted.  Meanwhile, the bulk of the
> working set may be thrashing on the preferred zone even though there
> may be significant amounts of memory available in the lower zones.
> 
> Even the most basic test -- repeatedly reading a file slightly bigger
> than memory -- shows how broken the zone aging is.  In this scenario,
> no single page should be able stay in memory long enough to get
> referenced twice and activated, but activation happens in spades:
> 
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 0
>       nr_inactive_file 0
>       nr_active_file 8
>       nr_inactive_file 1582
>       nr_active_file 11994
>   $ cat data data data data >/dev/null
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 70
>       nr_inactive_file 258753
>       nr_active_file 443214
>       nr_inactive_file 149793
>       nr_active_file 12021
> 
> Fix this with a very simple round robin allocator.  Each zone is
> allowed a batch of allocations that is proportional to the zone's
> size, after which it is treated as full.  The batch counters are reset
> when all zones have been tried and the allocator enters the slowpath
> and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
> spread out to all available/allowable zones:
> 
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 0
>       nr_inactive_file 174
>       nr_active_file 4865
>       nr_inactive_file 53
>       nr_active_file 860
>   $ cat data data data data >/dev/null
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 0
>       nr_inactive_file 666622
>       nr_active_file 4988
>       nr_inactive_file 190969
>       nr_active_file 937
> 
> When zone_reclaim_mode is enabled, allocations will now spread out to
> all zones on the local node, not just the first preferred zone (which
> on a 4G node might be a tiny Normal zone).

I really want to give Reviewed-by but before that, I'd like to clear out
my concern which didn't handle enoughly in previous iteration.

Let's assume system has normal zone : 800M High zone : 800M
and there are two parallel workloads.

1. alloc_pages(GFP_KERNEL) : 800M
2. alloc_pages(GFP_MOVABLE) + mlocked : 800M

With old behavior, allocation from both workloads is fulfilled happily
because most of allocation from GFP_KERNEL would be done in normal zone
while most of allocation from GFP_MOVABLE would be done in high zone.
There is no OOM kill in this scenario.

With you change, normal zone would be fullfilled with GFP_KERNEL:400M
and GFP_MOVABLE:400M while high zone will have GFP_MOVABLE:400 + free 400M.
Then, someone would be OOM killed.

Of course, you can argue that if there is such workloads, he should make
sure it via lowmem_reseve but it's rather overkill if we consider more examples
because any movable pages couldn't be allocated from normal zone so memory
efficieny would be very bad.

As I said, I like your approach because I have no idea to handle unbalanced
aging problem better and we can get more benefits rather than lost by above
corner case but at least, I'd like to confirm what you think about
above problem before further steps. Maybe we can introduce "mlock with
newly-allocation or already-mapped page could be migrated to high memory zone"
when someone reported out? (we thougt mlocked page migration would be problem
RT latency POV but Peter confirmed it's no problem.)


> 
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> Tested-by: Zlatko Calusic <zcalusic@bitsync.net>
> ---
>  include/linux/mmzone.h |  1 +
>  mm/page_alloc.c        | 69 ++++++++++++++++++++++++++++++++++++++++++--------
>  2 files changed, 60 insertions(+), 10 deletions(-)
> 
> diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
> index af4a3b7..dcad2ab 100644
> --- a/include/linux/mmzone.h
> +++ b/include/linux/mmzone.h
> @@ -352,6 +352,7 @@ struct zone {
>  	 * free areas of different sizes
>  	 */
>  	spinlock_t		lock;
> +	int			alloc_batch;
>  	int                     all_unreclaimable; /* All pages pinned */
>  #if defined CONFIG_COMPACTION || defined CONFIG_CMA
>  	/* Set to true when the PG_migrate_skip bits should be cleared */
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 3b27d3e..b2cdfd0 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -1817,6 +1817,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
>  	bitmap_zero(zlc->fullzones, MAX_ZONES_PER_ZONELIST);
>  }
>  
> +static bool zone_local(struct zone *local_zone, struct zone *zone)
> +{
> +	return node_distance(local_zone->node, zone->node) == LOCAL_DISTANCE;
> +}
> +
>  static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
>  {
>  	return node_isset(local_zone->node, zone->zone_pgdat->reclaim_nodes);
> @@ -1854,6 +1859,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
>  {
>  }
>  
> +static bool zone_local(struct zone *local_zone, struct zone *zone)
> +{
> +	return true;
> +}
> +
>  static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
>  {
>  	return true;
> @@ -1901,6 +1911,26 @@ zonelist_scan:
>  		if (alloc_flags & ALLOC_NO_WATERMARKS)
>  			goto try_this_zone;
>  		/*
> +		 * Distribute pages in proportion to the individual
> +		 * zone size to ensure fair page aging.  The zone a
> +		 * page was allocated in should have no effect on the
> +		 * time the page has in memory before being reclaimed.
> +		 *
> +		 * When zone_reclaim_mode is enabled, try to stay in
> +		 * local zones in the fastpath.  If that fails, the
> +		 * slowpath is entered, which will do another pass
> +		 * starting with the local zones, but ultimately fall
> +		 * back to remote zones that do not partake in the
> +		 * fairness round-robin cycle of this zonelist.
> +		 */
> +		if (alloc_flags & ALLOC_WMARK_LOW) {
> +			if (zone->alloc_batch <= 0)
> +				continue;
> +			if (zone_reclaim_mode &&
> +			    !zone_local(preferred_zone, zone))
> +				continue;
> +		}
> +		/*
>  		 * When allocating a page cache page for writing, we
>  		 * want to get it from a zone that is within its dirty
>  		 * limit, such that no single zone holds more than its
> @@ -2006,7 +2036,8 @@ this_zone_full:
>  		goto zonelist_scan;
>  	}
>  
> -	if (page)
> +	if (page) {
> +		zone->alloc_batch -= 1U << order;
>  		/*
>  		 * page->pfmemalloc is set when ALLOC_NO_WATERMARKS was
>  		 * necessary to allocate the page. The expectation is
> @@ -2015,6 +2046,7 @@ this_zone_full:
>  		 * for !PFMEMALLOC purposes.
>  		 */
>  		page->pfmemalloc = !!(alloc_flags & ALLOC_NO_WATERMARKS);
> +	}
>  
>  	return page;
>  }
> @@ -2346,16 +2378,28 @@ __alloc_pages_high_priority(gfp_t gfp_mask, unsigned int order,
>  	return page;
>  }
>  
> -static inline
> -void wake_all_kswapd(unsigned int order, struct zonelist *zonelist,
> -						enum zone_type high_zoneidx,
> -						enum zone_type classzone_idx)
> +static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
> +			     struct zonelist *zonelist,
> +			     enum zone_type high_zoneidx,
> +			     struct zone *preferred_zone)
>  {
>  	struct zoneref *z;
>  	struct zone *zone;
>  
> -	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx)
> -		wakeup_kswapd(zone, order, classzone_idx);
> +	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
> +		if (!(gfp_mask & __GFP_NO_KSWAPD))
> +			wakeup_kswapd(zone, order, zone_idx(preferred_zone));
> +		/*
> +		 * Only reset the batches of zones that were actually
> +		 * considered in the fast path, we don't want to
> +		 * thrash fairness information for zones that are not
> +		 * actually part of this zonelist's round-robin cycle.
> +		 */
> +		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
> +			continue;
> +		zone->alloc_batch = high_wmark_pages(zone) -
> +			low_wmark_pages(zone);
> +	}
>  }
>  
>  static inline int
> @@ -2451,9 +2495,8 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  		goto nopage;
>  
>  restart:
> -	if (!(gfp_mask & __GFP_NO_KSWAPD))
> -		wake_all_kswapd(order, zonelist, high_zoneidx,
> -						zone_idx(preferred_zone));
> +	prepare_slowpath(gfp_mask, order, zonelist,
> +			 high_zoneidx, preferred_zone);
>  
>  	/*
>  	 * OK, we're below the kswapd watermark and have kicked background
> @@ -4754,6 +4797,9 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
>  		zone_seqlock_init(zone);
>  		zone->zone_pgdat = pgdat;
>  
> +		/* For bootup, initialized properly in watermark setup */
> +		zone->alloc_batch = zone->managed_pages;
> +
>  		zone_pcp_init(zone);
>  		lruvec_init(&zone->lruvec);
>  		if (!size)
> @@ -5525,6 +5571,9 @@ static void __setup_per_zone_wmarks(void)
>  		zone->watermark[WMARK_LOW]  = min_wmark_pages(zone) + (tmp >> 2);
>  		zone->watermark[WMARK_HIGH] = min_wmark_pages(zone) + (tmp >> 1);
>  
> +		zone->alloc_batch = high_wmark_pages(zone) -
> +			low_wmark_pages(zone);
> +
>  		setup_zone_migrate_reserve(zone);
>  		spin_unlock_irqrestore(&zone->lock, flags);
>  	}
> -- 
> 1.8.3.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

-- 
Kind regards,
Minchan Kim

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-05  1:15     ` Minchan Kim
  0 siblings, 0 replies; 82+ messages in thread
From: Minchan Kim @ 2013-08-05  1:15 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, linux-mm, linux-kernel

Hello Hannes,

On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> Each zone that holds userspace pages of one workload must be aged at a
> speed proportional to the zone size.  Otherwise, the time an
> individual page gets to stay in memory depends on the zone it happened
> to be allocated in.  Asymmetry in the zone aging creates rather
> unpredictable aging behavior and results in the wrong pages being
> reclaimed, activated etc.
> 
> But exactly this happens right now because of the way the page
> allocator and kswapd interact.  The page allocator uses per-node lists
> of all zones in the system, ordered by preference, when allocating a
> new page.  When the first iteration does not yield any results, kswapd
> is woken up and the allocator retries.  Due to the way kswapd reclaims
> zones below the high watermark while a zone can be allocated from when
> it is above the low watermark, the allocator may keep kswapd running
> while kswapd reclaim ensures that the page allocator can keep
> allocating from the first zone in the zonelist for extended periods of
> time.  Meanwhile the other zones rarely see new allocations and thus
> get aged much slower in comparison.
> 
> The result is that the occasional page placed in lower zones gets
> relatively more time in memory, even gets promoted to the active list
> after its peers have long been evicted.  Meanwhile, the bulk of the
> working set may be thrashing on the preferred zone even though there
> may be significant amounts of memory available in the lower zones.
> 
> Even the most basic test -- repeatedly reading a file slightly bigger
> than memory -- shows how broken the zone aging is.  In this scenario,
> no single page should be able stay in memory long enough to get
> referenced twice and activated, but activation happens in spades:
> 
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 0
>       nr_inactive_file 0
>       nr_active_file 8
>       nr_inactive_file 1582
>       nr_active_file 11994
>   $ cat data data data data >/dev/null
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 70
>       nr_inactive_file 258753
>       nr_active_file 443214
>       nr_inactive_file 149793
>       nr_active_file 12021
> 
> Fix this with a very simple round robin allocator.  Each zone is
> allowed a batch of allocations that is proportional to the zone's
> size, after which it is treated as full.  The batch counters are reset
> when all zones have been tried and the allocator enters the slowpath
> and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
> spread out to all available/allowable zones:
> 
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 0
>       nr_inactive_file 174
>       nr_active_file 4865
>       nr_inactive_file 53
>       nr_active_file 860
>   $ cat data data data data >/dev/null
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 0
>       nr_inactive_file 666622
>       nr_active_file 4988
>       nr_inactive_file 190969
>       nr_active_file 937
> 
> When zone_reclaim_mode is enabled, allocations will now spread out to
> all zones on the local node, not just the first preferred zone (which
> on a 4G node might be a tiny Normal zone).

I really want to give Reviewed-by but before that, I'd like to clear out
my concern which didn't handle enoughly in previous iteration.

Let's assume system has normal zone : 800M High zone : 800M
and there are two parallel workloads.

1. alloc_pages(GFP_KERNEL) : 800M
2. alloc_pages(GFP_MOVABLE) + mlocked : 800M

With old behavior, allocation from both workloads is fulfilled happily
because most of allocation from GFP_KERNEL would be done in normal zone
while most of allocation from GFP_MOVABLE would be done in high zone.
There is no OOM kill in this scenario.

With you change, normal zone would be fullfilled with GFP_KERNEL:400M
and GFP_MOVABLE:400M while high zone will have GFP_MOVABLE:400 + free 400M.
Then, someone would be OOM killed.

Of course, you can argue that if there is such workloads, he should make
sure it via lowmem_reseve but it's rather overkill if we consider more examples
because any movable pages couldn't be allocated from normal zone so memory
efficieny would be very bad.

As I said, I like your approach because I have no idea to handle unbalanced
aging problem better and we can get more benefits rather than lost by above
corner case but at least, I'd like to confirm what you think about
above problem before further steps. Maybe we can introduce "mlock with
newly-allocation or already-mapped page could be migrated to high memory zone"
when someone reported out? (we thougt mlocked page migration would be problem
RT latency POV but Peter confirmed it's no problem.)


> 
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> Tested-by: Zlatko Calusic <zcalusic@bitsync.net>
> ---
>  include/linux/mmzone.h |  1 +
>  mm/page_alloc.c        | 69 ++++++++++++++++++++++++++++++++++++++++++--------
>  2 files changed, 60 insertions(+), 10 deletions(-)
> 
> diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
> index af4a3b7..dcad2ab 100644
> --- a/include/linux/mmzone.h
> +++ b/include/linux/mmzone.h
> @@ -352,6 +352,7 @@ struct zone {
>  	 * free areas of different sizes
>  	 */
>  	spinlock_t		lock;
> +	int			alloc_batch;
>  	int                     all_unreclaimable; /* All pages pinned */
>  #if defined CONFIG_COMPACTION || defined CONFIG_CMA
>  	/* Set to true when the PG_migrate_skip bits should be cleared */
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 3b27d3e..b2cdfd0 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -1817,6 +1817,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
>  	bitmap_zero(zlc->fullzones, MAX_ZONES_PER_ZONELIST);
>  }
>  
> +static bool zone_local(struct zone *local_zone, struct zone *zone)
> +{
> +	return node_distance(local_zone->node, zone->node) == LOCAL_DISTANCE;
> +}
> +
>  static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
>  {
>  	return node_isset(local_zone->node, zone->zone_pgdat->reclaim_nodes);
> @@ -1854,6 +1859,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
>  {
>  }
>  
> +static bool zone_local(struct zone *local_zone, struct zone *zone)
> +{
> +	return true;
> +}
> +
>  static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
>  {
>  	return true;
> @@ -1901,6 +1911,26 @@ zonelist_scan:
>  		if (alloc_flags & ALLOC_NO_WATERMARKS)
>  			goto try_this_zone;
>  		/*
> +		 * Distribute pages in proportion to the individual
> +		 * zone size to ensure fair page aging.  The zone a
> +		 * page was allocated in should have no effect on the
> +		 * time the page has in memory before being reclaimed.
> +		 *
> +		 * When zone_reclaim_mode is enabled, try to stay in
> +		 * local zones in the fastpath.  If that fails, the
> +		 * slowpath is entered, which will do another pass
> +		 * starting with the local zones, but ultimately fall
> +		 * back to remote zones that do not partake in the
> +		 * fairness round-robin cycle of this zonelist.
> +		 */
> +		if (alloc_flags & ALLOC_WMARK_LOW) {
> +			if (zone->alloc_batch <= 0)
> +				continue;
> +			if (zone_reclaim_mode &&
> +			    !zone_local(preferred_zone, zone))
> +				continue;
> +		}
> +		/*
>  		 * When allocating a page cache page for writing, we
>  		 * want to get it from a zone that is within its dirty
>  		 * limit, such that no single zone holds more than its
> @@ -2006,7 +2036,8 @@ this_zone_full:
>  		goto zonelist_scan;
>  	}
>  
> -	if (page)
> +	if (page) {
> +		zone->alloc_batch -= 1U << order;
>  		/*
>  		 * page->pfmemalloc is set when ALLOC_NO_WATERMARKS was
>  		 * necessary to allocate the page. The expectation is
> @@ -2015,6 +2046,7 @@ this_zone_full:
>  		 * for !PFMEMALLOC purposes.
>  		 */
>  		page->pfmemalloc = !!(alloc_flags & ALLOC_NO_WATERMARKS);
> +	}
>  
>  	return page;
>  }
> @@ -2346,16 +2378,28 @@ __alloc_pages_high_priority(gfp_t gfp_mask, unsigned int order,
>  	return page;
>  }
>  
> -static inline
> -void wake_all_kswapd(unsigned int order, struct zonelist *zonelist,
> -						enum zone_type high_zoneidx,
> -						enum zone_type classzone_idx)
> +static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
> +			     struct zonelist *zonelist,
> +			     enum zone_type high_zoneidx,
> +			     struct zone *preferred_zone)
>  {
>  	struct zoneref *z;
>  	struct zone *zone;
>  
> -	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx)
> -		wakeup_kswapd(zone, order, classzone_idx);
> +	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
> +		if (!(gfp_mask & __GFP_NO_KSWAPD))
> +			wakeup_kswapd(zone, order, zone_idx(preferred_zone));
> +		/*
> +		 * Only reset the batches of zones that were actually
> +		 * considered in the fast path, we don't want to
> +		 * thrash fairness information for zones that are not
> +		 * actually part of this zonelist's round-robin cycle.
> +		 */
> +		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
> +			continue;
> +		zone->alloc_batch = high_wmark_pages(zone) -
> +			low_wmark_pages(zone);
> +	}
>  }
>  
>  static inline int
> @@ -2451,9 +2495,8 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  		goto nopage;
>  
>  restart:
> -	if (!(gfp_mask & __GFP_NO_KSWAPD))
> -		wake_all_kswapd(order, zonelist, high_zoneidx,
> -						zone_idx(preferred_zone));
> +	prepare_slowpath(gfp_mask, order, zonelist,
> +			 high_zoneidx, preferred_zone);
>  
>  	/*
>  	 * OK, we're below the kswapd watermark and have kicked background
> @@ -4754,6 +4797,9 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
>  		zone_seqlock_init(zone);
>  		zone->zone_pgdat = pgdat;
>  
> +		/* For bootup, initialized properly in watermark setup */
> +		zone->alloc_batch = zone->managed_pages;
> +
>  		zone_pcp_init(zone);
>  		lruvec_init(&zone->lruvec);
>  		if (!size)
> @@ -5525,6 +5571,9 @@ static void __setup_per_zone_wmarks(void)
>  		zone->watermark[WMARK_LOW]  = min_wmark_pages(zone) + (tmp >> 2);
>  		zone->watermark[WMARK_HIGH] = min_wmark_pages(zone) + (tmp >> 1);
>  
> +		zone->alloc_batch = high_wmark_pages(zone) -
> +			low_wmark_pages(zone);
> +
>  		setup_zone_migrate_reserve(zone);
>  		spin_unlock_irqrestore(&zone->lock, flags);
>  	}
> -- 
> 1.8.3.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

-- 
Kind regards,
Minchan Kim

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-05  1:15     ` Minchan Kim
@ 2013-08-05  3:43       ` Johannes Weiner
  -1 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-05  3:43 UTC (permalink / raw)
  To: Minchan Kim
  Cc: Andrew Morton, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, linux-mm, linux-kernel

On Mon, Aug 05, 2013 at 10:15:46AM +0900, Minchan Kim wrote:
> Hello Hannes,
> 
> On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> > Each zone that holds userspace pages of one workload must be aged at a
> > speed proportional to the zone size.  Otherwise, the time an
> > individual page gets to stay in memory depends on the zone it happened
> > to be allocated in.  Asymmetry in the zone aging creates rather
> > unpredictable aging behavior and results in the wrong pages being
> > reclaimed, activated etc.
> > 
> > But exactly this happens right now because of the way the page
> > allocator and kswapd interact.  The page allocator uses per-node lists
> > of all zones in the system, ordered by preference, when allocating a
> > new page.  When the first iteration does not yield any results, kswapd
> > is woken up and the allocator retries.  Due to the way kswapd reclaims
> > zones below the high watermark while a zone can be allocated from when
> > it is above the low watermark, the allocator may keep kswapd running
> > while kswapd reclaim ensures that the page allocator can keep
> > allocating from the first zone in the zonelist for extended periods of
> > time.  Meanwhile the other zones rarely see new allocations and thus
> > get aged much slower in comparison.
> > 
> > The result is that the occasional page placed in lower zones gets
> > relatively more time in memory, even gets promoted to the active list
> > after its peers have long been evicted.  Meanwhile, the bulk of the
> > working set may be thrashing on the preferred zone even though there
> > may be significant amounts of memory available in the lower zones.
> > 
> > Even the most basic test -- repeatedly reading a file slightly bigger
> > than memory -- shows how broken the zone aging is.  In this scenario,
> > no single page should be able stay in memory long enough to get
> > referenced twice and activated, but activation happens in spades:
> > 
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 0
> >       nr_inactive_file 0
> >       nr_active_file 8
> >       nr_inactive_file 1582
> >       nr_active_file 11994
> >   $ cat data data data data >/dev/null
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 70
> >       nr_inactive_file 258753
> >       nr_active_file 443214
> >       nr_inactive_file 149793
> >       nr_active_file 12021
> > 
> > Fix this with a very simple round robin allocator.  Each zone is
> > allowed a batch of allocations that is proportional to the zone's
> > size, after which it is treated as full.  The batch counters are reset
> > when all zones have been tried and the allocator enters the slowpath
> > and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
> > spread out to all available/allowable zones:
> > 
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 0
> >       nr_inactive_file 174
> >       nr_active_file 4865
> >       nr_inactive_file 53
> >       nr_active_file 860
> >   $ cat data data data data >/dev/null
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 0
> >       nr_inactive_file 666622
> >       nr_active_file 4988
> >       nr_inactive_file 190969
> >       nr_active_file 937
> > 
> > When zone_reclaim_mode is enabled, allocations will now spread out to
> > all zones on the local node, not just the first preferred zone (which
> > on a 4G node might be a tiny Normal zone).
> 
> I really want to give Reviewed-by but before that, I'd like to clear out
> my concern which didn't handle enoughly in previous iteration.
> 
> Let's assume system has normal zone : 800M High zone : 800M
> and there are two parallel workloads.
> 
> 1. alloc_pages(GFP_KERNEL) : 800M
> 2. alloc_pages(GFP_MOVABLE) + mlocked : 800M
> 
> With old behavior, allocation from both workloads is fulfilled happily
> because most of allocation from GFP_KERNEL would be done in normal zone
> while most of allocation from GFP_MOVABLE would be done in high zone.
> There is no OOM kill in this scenario.

If you have used ANY cache before, the movable pages will spill into
lowmem.

> With you change, normal zone would be fullfilled with GFP_KERNEL:400M
> and GFP_MOVABLE:400M while high zone will have GFP_MOVABLE:400 + free 400M.
> Then, someone would be OOM killed.
>
> Of course, you can argue that if there is such workloads, he should make
> sure it via lowmem_reseve but it's rather overkill if we consider more examples
> because any movable pages couldn't be allocated from normal zone so memory
> efficieny would be very bad.

That's exactly what lowmem reserves are for: protect low memory from
data that can sit in high memory, so that you have enough for data
that can only be in low memory.

If we find those reserves to be inadequate, we have to increase them.
You can't assume you get more lowmem than the lowmem reserves, period.

And while I don't mean to break highmem machines, I really can't find
it in my heart to care about theoretical performance variations in
highmem cornercases (which is already a redundancy).

> As I said, I like your approach because I have no idea to handle unbalanced
> aging problem better and we can get more benefits rather than lost by above
> corner case but at least, I'd like to confirm what you think about
> above problem before further steps. Maybe we can introduce "mlock with
> newly-allocation or already-mapped page could be migrated to high memory zone"
> when someone reported out? (we thougt mlocked page migration would be problem
> RT latency POV but Peter confirmed it's no problem.)

And you think increasing lowmem reserves would be overkill? ;-)

These patches fix real page aging problems.  Making trade offs to work
properly on as many setups as possible is one thing, but a highmem
configuration where you need exactly 100% of lowmem and mlock 100% of
highmem?

Come on, Minchan...

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-05  3:43       ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-05  3:43 UTC (permalink / raw)
  To: Minchan Kim
  Cc: Andrew Morton, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, linux-mm, linux-kernel

On Mon, Aug 05, 2013 at 10:15:46AM +0900, Minchan Kim wrote:
> Hello Hannes,
> 
> On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> > Each zone that holds userspace pages of one workload must be aged at a
> > speed proportional to the zone size.  Otherwise, the time an
> > individual page gets to stay in memory depends on the zone it happened
> > to be allocated in.  Asymmetry in the zone aging creates rather
> > unpredictable aging behavior and results in the wrong pages being
> > reclaimed, activated etc.
> > 
> > But exactly this happens right now because of the way the page
> > allocator and kswapd interact.  The page allocator uses per-node lists
> > of all zones in the system, ordered by preference, when allocating a
> > new page.  When the first iteration does not yield any results, kswapd
> > is woken up and the allocator retries.  Due to the way kswapd reclaims
> > zones below the high watermark while a zone can be allocated from when
> > it is above the low watermark, the allocator may keep kswapd running
> > while kswapd reclaim ensures that the page allocator can keep
> > allocating from the first zone in the zonelist for extended periods of
> > time.  Meanwhile the other zones rarely see new allocations and thus
> > get aged much slower in comparison.
> > 
> > The result is that the occasional page placed in lower zones gets
> > relatively more time in memory, even gets promoted to the active list
> > after its peers have long been evicted.  Meanwhile, the bulk of the
> > working set may be thrashing on the preferred zone even though there
> > may be significant amounts of memory available in the lower zones.
> > 
> > Even the most basic test -- repeatedly reading a file slightly bigger
> > than memory -- shows how broken the zone aging is.  In this scenario,
> > no single page should be able stay in memory long enough to get
> > referenced twice and activated, but activation happens in spades:
> > 
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 0
> >       nr_inactive_file 0
> >       nr_active_file 8
> >       nr_inactive_file 1582
> >       nr_active_file 11994
> >   $ cat data data data data >/dev/null
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 70
> >       nr_inactive_file 258753
> >       nr_active_file 443214
> >       nr_inactive_file 149793
> >       nr_active_file 12021
> > 
> > Fix this with a very simple round robin allocator.  Each zone is
> > allowed a batch of allocations that is proportional to the zone's
> > size, after which it is treated as full.  The batch counters are reset
> > when all zones have been tried and the allocator enters the slowpath
> > and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
> > spread out to all available/allowable zones:
> > 
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 0
> >       nr_inactive_file 174
> >       nr_active_file 4865
> >       nr_inactive_file 53
> >       nr_active_file 860
> >   $ cat data data data data >/dev/null
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 0
> >       nr_inactive_file 666622
> >       nr_active_file 4988
> >       nr_inactive_file 190969
> >       nr_active_file 937
> > 
> > When zone_reclaim_mode is enabled, allocations will now spread out to
> > all zones on the local node, not just the first preferred zone (which
> > on a 4G node might be a tiny Normal zone).
> 
> I really want to give Reviewed-by but before that, I'd like to clear out
> my concern which didn't handle enoughly in previous iteration.
> 
> Let's assume system has normal zone : 800M High zone : 800M
> and there are two parallel workloads.
> 
> 1. alloc_pages(GFP_KERNEL) : 800M
> 2. alloc_pages(GFP_MOVABLE) + mlocked : 800M
> 
> With old behavior, allocation from both workloads is fulfilled happily
> because most of allocation from GFP_KERNEL would be done in normal zone
> while most of allocation from GFP_MOVABLE would be done in high zone.
> There is no OOM kill in this scenario.

If you have used ANY cache before, the movable pages will spill into
lowmem.

> With you change, normal zone would be fullfilled with GFP_KERNEL:400M
> and GFP_MOVABLE:400M while high zone will have GFP_MOVABLE:400 + free 400M.
> Then, someone would be OOM killed.
>
> Of course, you can argue that if there is such workloads, he should make
> sure it via lowmem_reseve but it's rather overkill if we consider more examples
> because any movable pages couldn't be allocated from normal zone so memory
> efficieny would be very bad.

That's exactly what lowmem reserves are for: protect low memory from
data that can sit in high memory, so that you have enough for data
that can only be in low memory.

If we find those reserves to be inadequate, we have to increase them.
You can't assume you get more lowmem than the lowmem reserves, period.

And while I don't mean to break highmem machines, I really can't find
it in my heart to care about theoretical performance variations in
highmem cornercases (which is already a redundancy).

> As I said, I like your approach because I have no idea to handle unbalanced
> aging problem better and we can get more benefits rather than lost by above
> corner case but at least, I'd like to confirm what you think about
> above problem before further steps. Maybe we can introduce "mlock with
> newly-allocation or already-mapped page could be migrated to high memory zone"
> when someone reported out? (we thougt mlocked page migration would be problem
> RT latency POV but Peter confirmed it's no problem.)

And you think increasing lowmem reserves would be overkill? ;-)

These patches fix real page aging problems.  Making trade offs to work
properly on as many setups as possible is one thing, but a highmem
configuration where you need exactly 100% of lowmem and mlock 100% of
highmem?

Come on, Minchan...

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-05  3:43       ` Johannes Weiner
@ 2013-08-05  4:48         ` Minchan Kim
  -1 siblings, 0 replies; 82+ messages in thread
From: Minchan Kim @ 2013-08-05  4:48 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, linux-mm, linux-kernel

On Sun, Aug 04, 2013 at 11:43:04PM -0400, Johannes Weiner wrote:
> On Mon, Aug 05, 2013 at 10:15:46AM +0900, Minchan Kim wrote:
> > Hello Hannes,
> > 
> > On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> > > Each zone that holds userspace pages of one workload must be aged at a
> > > speed proportional to the zone size.  Otherwise, the time an
> > > individual page gets to stay in memory depends on the zone it happened
> > > to be allocated in.  Asymmetry in the zone aging creates rather
> > > unpredictable aging behavior and results in the wrong pages being
> > > reclaimed, activated etc.
> > > 
> > > But exactly this happens right now because of the way the page
> > > allocator and kswapd interact.  The page allocator uses per-node lists
> > > of all zones in the system, ordered by preference, when allocating a
> > > new page.  When the first iteration does not yield any results, kswapd
> > > is woken up and the allocator retries.  Due to the way kswapd reclaims
> > > zones below the high watermark while a zone can be allocated from when
> > > it is above the low watermark, the allocator may keep kswapd running
> > > while kswapd reclaim ensures that the page allocator can keep
> > > allocating from the first zone in the zonelist for extended periods of
> > > time.  Meanwhile the other zones rarely see new allocations and thus
> > > get aged much slower in comparison.
> > > 
> > > The result is that the occasional page placed in lower zones gets
> > > relatively more time in memory, even gets promoted to the active list
> > > after its peers have long been evicted.  Meanwhile, the bulk of the
> > > working set may be thrashing on the preferred zone even though there
> > > may be significant amounts of memory available in the lower zones.
> > > 
> > > Even the most basic test -- repeatedly reading a file slightly bigger
> > > than memory -- shows how broken the zone aging is.  In this scenario,
> > > no single page should be able stay in memory long enough to get
> > > referenced twice and activated, but activation happens in spades:
> > > 
> > >   $ grep active_file /proc/zoneinfo
> > >       nr_inactive_file 0
> > >       nr_active_file 0
> > >       nr_inactive_file 0
> > >       nr_active_file 8
> > >       nr_inactive_file 1582
> > >       nr_active_file 11994
> > >   $ cat data data data data >/dev/null
> > >   $ grep active_file /proc/zoneinfo
> > >       nr_inactive_file 0
> > >       nr_active_file 70
> > >       nr_inactive_file 258753
> > >       nr_active_file 443214
> > >       nr_inactive_file 149793
> > >       nr_active_file 12021
> > > 
> > > Fix this with a very simple round robin allocator.  Each zone is
> > > allowed a batch of allocations that is proportional to the zone's
> > > size, after which it is treated as full.  The batch counters are reset
> > > when all zones have been tried and the allocator enters the slowpath
> > > and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
> > > spread out to all available/allowable zones:
> > > 
> > >   $ grep active_file /proc/zoneinfo
> > >       nr_inactive_file 0
> > >       nr_active_file 0
> > >       nr_inactive_file 174
> > >       nr_active_file 4865
> > >       nr_inactive_file 53
> > >       nr_active_file 860
> > >   $ cat data data data data >/dev/null
> > >   $ grep active_file /proc/zoneinfo
> > >       nr_inactive_file 0
> > >       nr_active_file 0
> > >       nr_inactive_file 666622
> > >       nr_active_file 4988
> > >       nr_inactive_file 190969
> > >       nr_active_file 937
> > > 
> > > When zone_reclaim_mode is enabled, allocations will now spread out to
> > > all zones on the local node, not just the first preferred zone (which
> > > on a 4G node might be a tiny Normal zone).
> > 
> > I really want to give Reviewed-by but before that, I'd like to clear out
> > my concern which didn't handle enoughly in previous iteration.
> > 
> > Let's assume system has normal zone : 800M High zone : 800M
> > and there are two parallel workloads.
> > 
> > 1. alloc_pages(GFP_KERNEL) : 800M
> > 2. alloc_pages(GFP_MOVABLE) + mlocked : 800M
> > 
> > With old behavior, allocation from both workloads is fulfilled happily
> > because most of allocation from GFP_KERNEL would be done in normal zone
> > while most of allocation from GFP_MOVABLE would be done in high zone.
> > There is no OOM kill in this scenario.
> 
> If you have used ANY cache before, the movable pages will spill into
> lowmem.

Indeed, my example was just depends on luck.
I just wanted to discuss such corner case issue to notice cons at least,
someone. 

> 
> > With you change, normal zone would be fullfilled with GFP_KERNEL:400M
> > and GFP_MOVABLE:400M while high zone will have GFP_MOVABLE:400 + free 400M.
> > Then, someone would be OOM killed.
> >
> > Of course, you can argue that if there is such workloads, he should make
> > sure it via lowmem_reseve but it's rather overkill if we consider more examples
> > because any movable pages couldn't be allocated from normal zone so memory
> > efficieny would be very bad.
> 
> That's exactly what lowmem reserves are for: protect low memory from
> data that can sit in high memory, so that you have enough for data
> that can only be in low memory.
> 
> If we find those reserves to be inadequate, we have to increase them.
> You can't assume you get more lowmem than the lowmem reserves, period.

Theoretically, true.

> 
> And while I don't mean to break highmem machines, I really can't find
> it in my heart to care about theoretical performance variations in
> highmem cornercases (which is already a redundancy).

Yes. as I said, I don't know such workload, even embedded world.
But, recent mobile phone start to use 3G DRAM and maybe 2G would be a high
memory in 32bit machine. That's why I had a concern about this patch.
I think It's likely to pin lowmem more than old.

> 
> > As I said, I like your approach because I have no idea to handle unbalanced
> > aging problem better and we can get more benefits rather than lost by above
> > corner case but at least, I'd like to confirm what you think about
> > above problem before further steps. Maybe we can introduce "mlock with
> > newly-allocation or already-mapped page could be migrated to high memory zone"
> > when someone reported out? (we thougt mlocked page migration would be problem
> > RT latency POV but Peter confirmed it's no problem.)
> 
> And you think increasing lowmem reserves would be overkill? ;-)

If possible, I would like to avoid. ;-)

Peak workload : 800M average workload : 100M 
int foo[800M] vs int *bar = malloc(800M);

> 
> These patches fix real page aging problems.  Making trade offs to work

Indeed!

> properly on as many setups as possible is one thing, but a highmem
> configuration where you need exactly 100% of lowmem and mlock 100% of
> highmem?

Nope. Apprently, I don't know.
I just wanted to record that we should already cover such claims
in review phase so that if such problem happens in future, we can answer
easily "Just rasise your lowmem reserve ratio because you have been
depends on the luck until now". And I don't want to argue with other mm
guys such solution in future again.

> 
> Come on, Minchan...

I think as reviewer, it's enough as it is.

All three patches,

Reviewed-by: Minchan Kim <minchan@kernel.org>

> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

-- 
Kind regards,
Minchan Kim

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-05  4:48         ` Minchan Kim
  0 siblings, 0 replies; 82+ messages in thread
From: Minchan Kim @ 2013-08-05  4:48 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, linux-mm, linux-kernel

On Sun, Aug 04, 2013 at 11:43:04PM -0400, Johannes Weiner wrote:
> On Mon, Aug 05, 2013 at 10:15:46AM +0900, Minchan Kim wrote:
> > Hello Hannes,
> > 
> > On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> > > Each zone that holds userspace pages of one workload must be aged at a
> > > speed proportional to the zone size.  Otherwise, the time an
> > > individual page gets to stay in memory depends on the zone it happened
> > > to be allocated in.  Asymmetry in the zone aging creates rather
> > > unpredictable aging behavior and results in the wrong pages being
> > > reclaimed, activated etc.
> > > 
> > > But exactly this happens right now because of the way the page
> > > allocator and kswapd interact.  The page allocator uses per-node lists
> > > of all zones in the system, ordered by preference, when allocating a
> > > new page.  When the first iteration does not yield any results, kswapd
> > > is woken up and the allocator retries.  Due to the way kswapd reclaims
> > > zones below the high watermark while a zone can be allocated from when
> > > it is above the low watermark, the allocator may keep kswapd running
> > > while kswapd reclaim ensures that the page allocator can keep
> > > allocating from the first zone in the zonelist for extended periods of
> > > time.  Meanwhile the other zones rarely see new allocations and thus
> > > get aged much slower in comparison.
> > > 
> > > The result is that the occasional page placed in lower zones gets
> > > relatively more time in memory, even gets promoted to the active list
> > > after its peers have long been evicted.  Meanwhile, the bulk of the
> > > working set may be thrashing on the preferred zone even though there
> > > may be significant amounts of memory available in the lower zones.
> > > 
> > > Even the most basic test -- repeatedly reading a file slightly bigger
> > > than memory -- shows how broken the zone aging is.  In this scenario,
> > > no single page should be able stay in memory long enough to get
> > > referenced twice and activated, but activation happens in spades:
> > > 
> > >   $ grep active_file /proc/zoneinfo
> > >       nr_inactive_file 0
> > >       nr_active_file 0
> > >       nr_inactive_file 0
> > >       nr_active_file 8
> > >       nr_inactive_file 1582
> > >       nr_active_file 11994
> > >   $ cat data data data data >/dev/null
> > >   $ grep active_file /proc/zoneinfo
> > >       nr_inactive_file 0
> > >       nr_active_file 70
> > >       nr_inactive_file 258753
> > >       nr_active_file 443214
> > >       nr_inactive_file 149793
> > >       nr_active_file 12021
> > > 
> > > Fix this with a very simple round robin allocator.  Each zone is
> > > allowed a batch of allocations that is proportional to the zone's
> > > size, after which it is treated as full.  The batch counters are reset
> > > when all zones have been tried and the allocator enters the slowpath
> > > and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
> > > spread out to all available/allowable zones:
> > > 
> > >   $ grep active_file /proc/zoneinfo
> > >       nr_inactive_file 0
> > >       nr_active_file 0
> > >       nr_inactive_file 174
> > >       nr_active_file 4865
> > >       nr_inactive_file 53
> > >       nr_active_file 860
> > >   $ cat data data data data >/dev/null
> > >   $ grep active_file /proc/zoneinfo
> > >       nr_inactive_file 0
> > >       nr_active_file 0
> > >       nr_inactive_file 666622
> > >       nr_active_file 4988
> > >       nr_inactive_file 190969
> > >       nr_active_file 937
> > > 
> > > When zone_reclaim_mode is enabled, allocations will now spread out to
> > > all zones on the local node, not just the first preferred zone (which
> > > on a 4G node might be a tiny Normal zone).
> > 
> > I really want to give Reviewed-by but before that, I'd like to clear out
> > my concern which didn't handle enoughly in previous iteration.
> > 
> > Let's assume system has normal zone : 800M High zone : 800M
> > and there are two parallel workloads.
> > 
> > 1. alloc_pages(GFP_KERNEL) : 800M
> > 2. alloc_pages(GFP_MOVABLE) + mlocked : 800M
> > 
> > With old behavior, allocation from both workloads is fulfilled happily
> > because most of allocation from GFP_KERNEL would be done in normal zone
> > while most of allocation from GFP_MOVABLE would be done in high zone.
> > There is no OOM kill in this scenario.
> 
> If you have used ANY cache before, the movable pages will spill into
> lowmem.

Indeed, my example was just depends on luck.
I just wanted to discuss such corner case issue to notice cons at least,
someone. 

> 
> > With you change, normal zone would be fullfilled with GFP_KERNEL:400M
> > and GFP_MOVABLE:400M while high zone will have GFP_MOVABLE:400 + free 400M.
> > Then, someone would be OOM killed.
> >
> > Of course, you can argue that if there is such workloads, he should make
> > sure it via lowmem_reseve but it's rather overkill if we consider more examples
> > because any movable pages couldn't be allocated from normal zone so memory
> > efficieny would be very bad.
> 
> That's exactly what lowmem reserves are for: protect low memory from
> data that can sit in high memory, so that you have enough for data
> that can only be in low memory.
> 
> If we find those reserves to be inadequate, we have to increase them.
> You can't assume you get more lowmem than the lowmem reserves, period.

Theoretically, true.

> 
> And while I don't mean to break highmem machines, I really can't find
> it in my heart to care about theoretical performance variations in
> highmem cornercases (which is already a redundancy).

Yes. as I said, I don't know such workload, even embedded world.
But, recent mobile phone start to use 3G DRAM and maybe 2G would be a high
memory in 32bit machine. That's why I had a concern about this patch.
I think It's likely to pin lowmem more than old.

> 
> > As I said, I like your approach because I have no idea to handle unbalanced
> > aging problem better and we can get more benefits rather than lost by above
> > corner case but at least, I'd like to confirm what you think about
> > above problem before further steps. Maybe we can introduce "mlock with
> > newly-allocation or already-mapped page could be migrated to high memory zone"
> > when someone reported out? (we thougt mlocked page migration would be problem
> > RT latency POV but Peter confirmed it's no problem.)
> 
> And you think increasing lowmem reserves would be overkill? ;-)

If possible, I would like to avoid. ;-)

Peak workload : 800M average workload : 100M 
int foo[800M] vs int *bar = malloc(800M);

> 
> These patches fix real page aging problems.  Making trade offs to work

Indeed!

> properly on as many setups as possible is one thing, but a highmem
> configuration where you need exactly 100% of lowmem and mlock 100% of
> highmem?

Nope. Apprently, I don't know.
I just wanted to record that we should already cover such claims
in review phase so that if such problem happens in future, we can answer
easily "Just rasise your lowmem reserve ratio because you have been
depends on the luck until now". And I don't want to argue with other mm
guys such solution in future again.

> 
> Come on, Minchan...

I think as reviewer, it's enough as it is.

All three patches,

Reviewed-by: Minchan Kim <minchan@kernel.org>

> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

-- 
Kind regards,
Minchan Kim

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-05  4:48         ` Minchan Kim
@ 2013-08-05  5:01           ` Johannes Weiner
  -1 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-05  5:01 UTC (permalink / raw)
  To: Minchan Kim
  Cc: Andrew Morton, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, linux-mm, linux-kernel

On Mon, Aug 05, 2013 at 01:48:58PM +0900, Minchan Kim wrote:
> On Sun, Aug 04, 2013 at 11:43:04PM -0400, Johannes Weiner wrote:
> > On Mon, Aug 05, 2013 at 10:15:46AM +0900, Minchan Kim wrote:
> > > I really want to give Reviewed-by but before that, I'd like to clear out
> > > my concern which didn't handle enoughly in previous iteration.
> > > 
> > > Let's assume system has normal zone : 800M High zone : 800M
> > > and there are two parallel workloads.
> > > 
> > > 1. alloc_pages(GFP_KERNEL) : 800M
> > > 2. alloc_pages(GFP_MOVABLE) + mlocked : 800M
> > > 
> > > With old behavior, allocation from both workloads is fulfilled happily
> > > because most of allocation from GFP_KERNEL would be done in normal zone
> > > while most of allocation from GFP_MOVABLE would be done in high zone.
> > > There is no OOM kill in this scenario.
> > 
> > If you have used ANY cache before, the movable pages will spill into
> > lowmem.
> 
> Indeed, my example was just depends on luck.
> I just wanted to discuss such corner case issue to notice cons at least,
> someone. 
> 
> > 
> > > With you change, normal zone would be fullfilled with GFP_KERNEL:400M
> > > and GFP_MOVABLE:400M while high zone will have GFP_MOVABLE:400 + free 400M.
> > > Then, someone would be OOM killed.
> > >
> > > Of course, you can argue that if there is such workloads, he should make
> > > sure it via lowmem_reseve but it's rather overkill if we consider more examples
> > > because any movable pages couldn't be allocated from normal zone so memory
> > > efficieny would be very bad.
> > 
> > That's exactly what lowmem reserves are for: protect low memory from
> > data that can sit in high memory, so that you have enough for data
> > that can only be in low memory.
> > 
> > If we find those reserves to be inadequate, we have to increase them.
> > You can't assume you get more lowmem than the lowmem reserves, period.
> 
> Theoretically, true.
> 
> > 
> > And while I don't mean to break highmem machines, I really can't find
> > it in my heart to care about theoretical performance variations in
> > highmem cornercases (which is already a redundancy).
> 
> Yes. as I said, I don't know such workload, even embedded world.
> But, recent mobile phone start to use 3G DRAM and maybe 2G would be a high
> memory in 32bit machine. That's why I had a concern about this patch.
> I think It's likely to pin lowmem more than old.
>
> > > As I said, I like your approach because I have no idea to handle unbalanced
> > > aging problem better and we can get more benefits rather than lost by above
> > > corner case but at least, I'd like to confirm what you think about
> > > above problem before further steps. Maybe we can introduce "mlock with
> > > newly-allocation or already-mapped page could be migrated to high memory zone"
> > > when someone reported out? (we thougt mlocked page migration would be problem
> > > RT latency POV but Peter confirmed it's no problem.)
> > 
> > And you think increasing lowmem reserves would be overkill? ;-)
> 
> If possible, I would like to avoid. ;-)
> 
> Peak workload : 800M average workload : 100M 
> int foo[800M] vs int *bar = malloc(800M);
> 
> > 
> > These patches fix real page aging problems.  Making trade offs to work
> 
> Indeed!
> 
> > properly on as many setups as possible is one thing, but a highmem
> > configuration where you need exactly 100% of lowmem and mlock 100% of
> > highmem?
> 
> Nope. Apprently, I don't know.
> I just wanted to record that we should already cover such claims
> in review phase so that if such problem happens in future, we can answer
> easily "Just rasise your lowmem reserve ratio because you have been
> depends on the luck until now". And I don't want to argue with other mm
> guys such solution in future again.

That's fair enough.

I would definitely suggest increasing the lowmem reserves in that case
but I don't expect anybody to actually rely on the exact placement on
a pristine system.  Not for performance, much less for _correctness_.

> I think as reviewer, it's enough as it is.
> 
> All three patches,
> 
> Reviewed-by: Minchan Kim <minchan@kernel.org>

Thank you very much!

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-05  5:01           ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-05  5:01 UTC (permalink / raw)
  To: Minchan Kim
  Cc: Andrew Morton, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, linux-mm, linux-kernel

On Mon, Aug 05, 2013 at 01:48:58PM +0900, Minchan Kim wrote:
> On Sun, Aug 04, 2013 at 11:43:04PM -0400, Johannes Weiner wrote:
> > On Mon, Aug 05, 2013 at 10:15:46AM +0900, Minchan Kim wrote:
> > > I really want to give Reviewed-by but before that, I'd like to clear out
> > > my concern which didn't handle enoughly in previous iteration.
> > > 
> > > Let's assume system has normal zone : 800M High zone : 800M
> > > and there are two parallel workloads.
> > > 
> > > 1. alloc_pages(GFP_KERNEL) : 800M
> > > 2. alloc_pages(GFP_MOVABLE) + mlocked : 800M
> > > 
> > > With old behavior, allocation from both workloads is fulfilled happily
> > > because most of allocation from GFP_KERNEL would be done in normal zone
> > > while most of allocation from GFP_MOVABLE would be done in high zone.
> > > There is no OOM kill in this scenario.
> > 
> > If you have used ANY cache before, the movable pages will spill into
> > lowmem.
> 
> Indeed, my example was just depends on luck.
> I just wanted to discuss such corner case issue to notice cons at least,
> someone. 
> 
> > 
> > > With you change, normal zone would be fullfilled with GFP_KERNEL:400M
> > > and GFP_MOVABLE:400M while high zone will have GFP_MOVABLE:400 + free 400M.
> > > Then, someone would be OOM killed.
> > >
> > > Of course, you can argue that if there is such workloads, he should make
> > > sure it via lowmem_reseve but it's rather overkill if we consider more examples
> > > because any movable pages couldn't be allocated from normal zone so memory
> > > efficieny would be very bad.
> > 
> > That's exactly what lowmem reserves are for: protect low memory from
> > data that can sit in high memory, so that you have enough for data
> > that can only be in low memory.
> > 
> > If we find those reserves to be inadequate, we have to increase them.
> > You can't assume you get more lowmem than the lowmem reserves, period.
> 
> Theoretically, true.
> 
> > 
> > And while I don't mean to break highmem machines, I really can't find
> > it in my heart to care about theoretical performance variations in
> > highmem cornercases (which is already a redundancy).
> 
> Yes. as I said, I don't know such workload, even embedded world.
> But, recent mobile phone start to use 3G DRAM and maybe 2G would be a high
> memory in 32bit machine. That's why I had a concern about this patch.
> I think It's likely to pin lowmem more than old.
>
> > > As I said, I like your approach because I have no idea to handle unbalanced
> > > aging problem better and we can get more benefits rather than lost by above
> > > corner case but at least, I'd like to confirm what you think about
> > > above problem before further steps. Maybe we can introduce "mlock with
> > > newly-allocation or already-mapped page could be migrated to high memory zone"
> > > when someone reported out? (we thougt mlocked page migration would be problem
> > > RT latency POV but Peter confirmed it's no problem.)
> > 
> > And you think increasing lowmem reserves would be overkill? ;-)
> 
> If possible, I would like to avoid. ;-)
> 
> Peak workload : 800M average workload : 100M 
> int foo[800M] vs int *bar = malloc(800M);
> 
> > 
> > These patches fix real page aging problems.  Making trade offs to work
> 
> Indeed!
> 
> > properly on as many setups as possible is one thing, but a highmem
> > configuration where you need exactly 100% of lowmem and mlock 100% of
> > highmem?
> 
> Nope. Apprently, I don't know.
> I just wanted to record that we should already cover such claims
> in review phase so that if such problem happens in future, we can answer
> easily "Just rasise your lowmem reserve ratio because you have been
> depends on the luck until now". And I don't want to argue with other mm
> guys such solution in future again.

That's fair enough.

I would definitely suggest increasing the lowmem reserves in that case
but I don't expect anybody to actually rely on the exact placement on
a pristine system.  Not for performance, much less for _correctness_.

> I think as reviewer, it's enough as it is.
> 
> All three patches,
> 
> Reviewed-by: Minchan Kim <minchan@kernel.org>

Thank you very much!

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-02 15:37   ` Johannes Weiner
                     ` (3 preceding siblings ...)
  (?)
@ 2013-08-05 10:34   ` Wanpeng Li
  2013-08-05 11:34       ` Andrea Arcangeli
  -1 siblings, 1 reply; 82+ messages in thread
From: Wanpeng Li @ 2013-08-05 10:34 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel

On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
>Each zone that holds userspace pages of one workload must be aged at a
>speed proportional to the zone size.  Otherwise, the time an
>individual page gets to stay in memory depends on the zone it happened
>to be allocated in.  Asymmetry in the zone aging creates rather
>unpredictable aging behavior and results in the wrong pages being
>reclaimed, activated etc.
>
>But exactly this happens right now because of the way the page
>allocator and kswapd interact.  The page allocator uses per-node lists
>of all zones in the system, ordered by preference, when allocating a
>new page.  When the first iteration does not yield any results, kswapd
>is woken up and the allocator retries.  Due to the way kswapd reclaims
>zones below the high watermark while a zone can be allocated from when
>it is above the low watermark, the allocator may keep kswapd running
>while kswapd reclaim ensures that the page allocator can keep
>allocating from the first zone in the zonelist for extended periods of
>time.  Meanwhile the other zones rarely see new allocations and thus
>get aged much slower in comparison.
>
>The result is that the occasional page placed in lower zones gets
>relatively more time in memory, even gets promoted to the active list
>after its peers have long been evicted.  Meanwhile, the bulk of the
>working set may be thrashing on the preferred zone even though there
>may be significant amounts of memory available in the lower zones.
>
>Even the most basic test -- repeatedly reading a file slightly bigger
>than memory -- shows how broken the zone aging is.  In this scenario,
>no single page should be able stay in memory long enough to get
>referenced twice and activated, but activation happens in spades:
>
>  $ grep active_file /proc/zoneinfo
>      nr_inactive_file 0
>      nr_active_file 0
>      nr_inactive_file 0
>      nr_active_file 8
>      nr_inactive_file 1582
>      nr_active_file 11994
>  $ cat data data data data >/dev/null
>  $ grep active_file /proc/zoneinfo
>      nr_inactive_file 0
>      nr_active_file 70
>      nr_inactive_file 258753
>      nr_active_file 443214
>      nr_inactive_file 149793
>      nr_active_file 12021
>
>Fix this with a very simple round robin allocator.  Each zone is
>allowed a batch of allocations that is proportional to the zone's
>size, after which it is treated as full.  The batch counters are reset
>when all zones have been tried and the allocator enters the slowpath
>and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
>spread out to all available/allowable zones:
>
>  $ grep active_file /proc/zoneinfo
>      nr_inactive_file 0
>      nr_active_file 0
>      nr_inactive_file 174
>      nr_active_file 4865
>      nr_inactive_file 53
>      nr_active_file 860
>  $ cat data data data data >/dev/null
>  $ grep active_file /proc/zoneinfo
>      nr_inactive_file 0
>      nr_active_file 0
>      nr_inactive_file 666622
>      nr_active_file 4988
>      nr_inactive_file 190969
>      nr_active_file 937
>

Why round robin allocator don't consume ZONE_DMA?

>When zone_reclaim_mode is enabled, allocations will now spread out to
>all zones on the local node, not just the first preferred zone (which
>on a 4G node might be a tiny Normal zone).
>
>Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
>Tested-by: Zlatko Calusic <zcalusic@bitsync.net>
>---
> include/linux/mmzone.h |  1 +
> mm/page_alloc.c        | 69 ++++++++++++++++++++++++++++++++++++++++++--------
> 2 files changed, 60 insertions(+), 10 deletions(-)
>
>diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
>index af4a3b7..dcad2ab 100644
>--- a/include/linux/mmzone.h
>+++ b/include/linux/mmzone.h
>@@ -352,6 +352,7 @@ struct zone {
> 	 * free areas of different sizes
> 	 */
> 	spinlock_t		lock;
>+	int			alloc_batch;
> 	int                     all_unreclaimable; /* All pages pinned */
> #if defined CONFIG_COMPACTION || defined CONFIG_CMA
> 	/* Set to true when the PG_migrate_skip bits should be cleared */
>diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>index 3b27d3e..b2cdfd0 100644
>--- a/mm/page_alloc.c
>+++ b/mm/page_alloc.c
>@@ -1817,6 +1817,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
> 	bitmap_zero(zlc->fullzones, MAX_ZONES_PER_ZONELIST);
> }
>
>+static bool zone_local(struct zone *local_zone, struct zone *zone)
>+{
>+	return node_distance(local_zone->node, zone->node) == LOCAL_DISTANCE;
>+}
>+
> static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
> {
> 	return node_isset(local_zone->node, zone->zone_pgdat->reclaim_nodes);
>@@ -1854,6 +1859,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
> {
> }
>
>+static bool zone_local(struct zone *local_zone, struct zone *zone)
>+{
>+	return true;
>+}
>+
> static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
> {
> 	return true;
>@@ -1901,6 +1911,26 @@ zonelist_scan:
> 		if (alloc_flags & ALLOC_NO_WATERMARKS)
> 			goto try_this_zone;
> 		/*
>+		 * Distribute pages in proportion to the individual
>+		 * zone size to ensure fair page aging.  The zone a
>+		 * page was allocated in should have no effect on the
>+		 * time the page has in memory before being reclaimed.
>+		 *
>+		 * When zone_reclaim_mode is enabled, try to stay in
>+		 * local zones in the fastpath.  If that fails, the
>+		 * slowpath is entered, which will do another pass
>+		 * starting with the local zones, but ultimately fall
>+		 * back to remote zones that do not partake in the
>+		 * fairness round-robin cycle of this zonelist.
>+		 */
>+		if (alloc_flags & ALLOC_WMARK_LOW) {
>+			if (zone->alloc_batch <= 0)
>+				continue;
>+			if (zone_reclaim_mode &&
>+			    !zone_local(preferred_zone, zone))
>+				continue;
>+		}
>+		/*
> 		 * When allocating a page cache page for writing, we
> 		 * want to get it from a zone that is within its dirty
> 		 * limit, such that no single zone holds more than its
>@@ -2006,7 +2036,8 @@ this_zone_full:
> 		goto zonelist_scan;
> 	}
>
>-	if (page)
>+	if (page) {
>+		zone->alloc_batch -= 1U << order;
> 		/*
> 		 * page->pfmemalloc is set when ALLOC_NO_WATERMARKS was
> 		 * necessary to allocate the page. The expectation is
>@@ -2015,6 +2046,7 @@ this_zone_full:
> 		 * for !PFMEMALLOC purposes.
> 		 */
> 		page->pfmemalloc = !!(alloc_flags & ALLOC_NO_WATERMARKS);
>+	}
>
> 	return page;
> }
>@@ -2346,16 +2378,28 @@ __alloc_pages_high_priority(gfp_t gfp_mask, unsigned int order,
> 	return page;
> }
>
>-static inline
>-void wake_all_kswapd(unsigned int order, struct zonelist *zonelist,
>-						enum zone_type high_zoneidx,
>-						enum zone_type classzone_idx)
>+static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
>+			     struct zonelist *zonelist,
>+			     enum zone_type high_zoneidx,
>+			     struct zone *preferred_zone)
> {
> 	struct zoneref *z;
> 	struct zone *zone;
>
>-	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx)
>-		wakeup_kswapd(zone, order, classzone_idx);
>+	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
>+		if (!(gfp_mask & __GFP_NO_KSWAPD))
>+			wakeup_kswapd(zone, order, zone_idx(preferred_zone));
>+		/*
>+		 * Only reset the batches of zones that were actually
>+		 * considered in the fast path, we don't want to
>+		 * thrash fairness information for zones that are not
>+		 * actually part of this zonelist's round-robin cycle.
>+		 */
>+		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
>+			continue;
>+		zone->alloc_batch = high_wmark_pages(zone) -
>+			low_wmark_pages(zone);
>+	}
> }
>
> static inline int
>@@ -2451,9 +2495,8 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
> 		goto nopage;
>
> restart:
>-	if (!(gfp_mask & __GFP_NO_KSWAPD))
>-		wake_all_kswapd(order, zonelist, high_zoneidx,
>-						zone_idx(preferred_zone));
>+	prepare_slowpath(gfp_mask, order, zonelist,
>+			 high_zoneidx, preferred_zone);
>
> 	/*
> 	 * OK, we're below the kswapd watermark and have kicked background
>@@ -4754,6 +4797,9 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
> 		zone_seqlock_init(zone);
> 		zone->zone_pgdat = pgdat;
>
>+		/* For bootup, initialized properly in watermark setup */
>+		zone->alloc_batch = zone->managed_pages;
>+
> 		zone_pcp_init(zone);
> 		lruvec_init(&zone->lruvec);
> 		if (!size)
>@@ -5525,6 +5571,9 @@ static void __setup_per_zone_wmarks(void)
> 		zone->watermark[WMARK_LOW]  = min_wmark_pages(zone) + (tmp >> 2);
> 		zone->watermark[WMARK_HIGH] = min_wmark_pages(zone) + (tmp >> 1);
>
>+		zone->alloc_batch = high_wmark_pages(zone) -
>+			low_wmark_pages(zone);
>+
> 		setup_zone_migrate_reserve(zone);
> 		spin_unlock_irqrestore(&zone->lock, flags);
> 	}
>-- 
>1.8.3.2
>
>--
>To unsubscribe, send a message with 'unsubscribe linux-mm' in
>the body to majordomo@kvack.org.  For more info on Linux MM,
>see: http://www.linux-mm.org/ .
>Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-02 15:37   ` Johannes Weiner
                     ` (2 preceding siblings ...)
  (?)
@ 2013-08-05 10:34   ` Wanpeng Li
  -1 siblings, 0 replies; 82+ messages in thread
From: Wanpeng Li @ 2013-08-05 10:34 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel

On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
>Each zone that holds userspace pages of one workload must be aged at a
>speed proportional to the zone size.  Otherwise, the time an
>individual page gets to stay in memory depends on the zone it happened
>to be allocated in.  Asymmetry in the zone aging creates rather
>unpredictable aging behavior and results in the wrong pages being
>reclaimed, activated etc.
>
>But exactly this happens right now because of the way the page
>allocator and kswapd interact.  The page allocator uses per-node lists
>of all zones in the system, ordered by preference, when allocating a
>new page.  When the first iteration does not yield any results, kswapd
>is woken up and the allocator retries.  Due to the way kswapd reclaims
>zones below the high watermark while a zone can be allocated from when
>it is above the low watermark, the allocator may keep kswapd running
>while kswapd reclaim ensures that the page allocator can keep
>allocating from the first zone in the zonelist for extended periods of
>time.  Meanwhile the other zones rarely see new allocations and thus
>get aged much slower in comparison.
>
>The result is that the occasional page placed in lower zones gets
>relatively more time in memory, even gets promoted to the active list
>after its peers have long been evicted.  Meanwhile, the bulk of the
>working set may be thrashing on the preferred zone even though there
>may be significant amounts of memory available in the lower zones.
>
>Even the most basic test -- repeatedly reading a file slightly bigger
>than memory -- shows how broken the zone aging is.  In this scenario,
>no single page should be able stay in memory long enough to get
>referenced twice and activated, but activation happens in spades:
>
>  $ grep active_file /proc/zoneinfo
>      nr_inactive_file 0
>      nr_active_file 0
>      nr_inactive_file 0
>      nr_active_file 8
>      nr_inactive_file 1582
>      nr_active_file 11994
>  $ cat data data data data >/dev/null
>  $ grep active_file /proc/zoneinfo
>      nr_inactive_file 0
>      nr_active_file 70
>      nr_inactive_file 258753
>      nr_active_file 443214
>      nr_inactive_file 149793
>      nr_active_file 12021
>
>Fix this with a very simple round robin allocator.  Each zone is
>allowed a batch of allocations that is proportional to the zone's
>size, after which it is treated as full.  The batch counters are reset
>when all zones have been tried and the allocator enters the slowpath
>and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
>spread out to all available/allowable zones:
>
>  $ grep active_file /proc/zoneinfo
>      nr_inactive_file 0
>      nr_active_file 0
>      nr_inactive_file 174
>      nr_active_file 4865
>      nr_inactive_file 53
>      nr_active_file 860
>  $ cat data data data data >/dev/null
>  $ grep active_file /proc/zoneinfo
>      nr_inactive_file 0
>      nr_active_file 0
>      nr_inactive_file 666622
>      nr_active_file 4988
>      nr_inactive_file 190969
>      nr_active_file 937
>

Why round robin allocator don't consume ZONE_DMA?

>When zone_reclaim_mode is enabled, allocations will now spread out to
>all zones on the local node, not just the first preferred zone (which
>on a 4G node might be a tiny Normal zone).
>
>Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
>Tested-by: Zlatko Calusic <zcalusic@bitsync.net>
>---
> include/linux/mmzone.h |  1 +
> mm/page_alloc.c        | 69 ++++++++++++++++++++++++++++++++++++++++++--------
> 2 files changed, 60 insertions(+), 10 deletions(-)
>
>diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
>index af4a3b7..dcad2ab 100644
>--- a/include/linux/mmzone.h
>+++ b/include/linux/mmzone.h
>@@ -352,6 +352,7 @@ struct zone {
> 	 * free areas of different sizes
> 	 */
> 	spinlock_t		lock;
>+	int			alloc_batch;
> 	int                     all_unreclaimable; /* All pages pinned */
> #if defined CONFIG_COMPACTION || defined CONFIG_CMA
> 	/* Set to true when the PG_migrate_skip bits should be cleared */
>diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>index 3b27d3e..b2cdfd0 100644
>--- a/mm/page_alloc.c
>+++ b/mm/page_alloc.c
>@@ -1817,6 +1817,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
> 	bitmap_zero(zlc->fullzones, MAX_ZONES_PER_ZONELIST);
> }
>
>+static bool zone_local(struct zone *local_zone, struct zone *zone)
>+{
>+	return node_distance(local_zone->node, zone->node) == LOCAL_DISTANCE;
>+}
>+
> static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
> {
> 	return node_isset(local_zone->node, zone->zone_pgdat->reclaim_nodes);
>@@ -1854,6 +1859,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
> {
> }
>
>+static bool zone_local(struct zone *local_zone, struct zone *zone)
>+{
>+	return true;
>+}
>+
> static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
> {
> 	return true;
>@@ -1901,6 +1911,26 @@ zonelist_scan:
> 		if (alloc_flags & ALLOC_NO_WATERMARKS)
> 			goto try_this_zone;
> 		/*
>+		 * Distribute pages in proportion to the individual
>+		 * zone size to ensure fair page aging.  The zone a
>+		 * page was allocated in should have no effect on the
>+		 * time the page has in memory before being reclaimed.
>+		 *
>+		 * When zone_reclaim_mode is enabled, try to stay in
>+		 * local zones in the fastpath.  If that fails, the
>+		 * slowpath is entered, which will do another pass
>+		 * starting with the local zones, but ultimately fall
>+		 * back to remote zones that do not partake in the
>+		 * fairness round-robin cycle of this zonelist.
>+		 */
>+		if (alloc_flags & ALLOC_WMARK_LOW) {
>+			if (zone->alloc_batch <= 0)
>+				continue;
>+			if (zone_reclaim_mode &&
>+			    !zone_local(preferred_zone, zone))
>+				continue;
>+		}
>+		/*
> 		 * When allocating a page cache page for writing, we
> 		 * want to get it from a zone that is within its dirty
> 		 * limit, such that no single zone holds more than its
>@@ -2006,7 +2036,8 @@ this_zone_full:
> 		goto zonelist_scan;
> 	}
>
>-	if (page)
>+	if (page) {
>+		zone->alloc_batch -= 1U << order;
> 		/*
> 		 * page->pfmemalloc is set when ALLOC_NO_WATERMARKS was
> 		 * necessary to allocate the page. The expectation is
>@@ -2015,6 +2046,7 @@ this_zone_full:
> 		 * for !PFMEMALLOC purposes.
> 		 */
> 		page->pfmemalloc = !!(alloc_flags & ALLOC_NO_WATERMARKS);
>+	}
>
> 	return page;
> }
>@@ -2346,16 +2378,28 @@ __alloc_pages_high_priority(gfp_t gfp_mask, unsigned int order,
> 	return page;
> }
>
>-static inline
>-void wake_all_kswapd(unsigned int order, struct zonelist *zonelist,
>-						enum zone_type high_zoneidx,
>-						enum zone_type classzone_idx)
>+static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
>+			     struct zonelist *zonelist,
>+			     enum zone_type high_zoneidx,
>+			     struct zone *preferred_zone)
> {
> 	struct zoneref *z;
> 	struct zone *zone;
>
>-	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx)
>-		wakeup_kswapd(zone, order, classzone_idx);
>+	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
>+		if (!(gfp_mask & __GFP_NO_KSWAPD))
>+			wakeup_kswapd(zone, order, zone_idx(preferred_zone));
>+		/*
>+		 * Only reset the batches of zones that were actually
>+		 * considered in the fast path, we don't want to
>+		 * thrash fairness information for zones that are not
>+		 * actually part of this zonelist's round-robin cycle.
>+		 */
>+		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
>+			continue;
>+		zone->alloc_batch = high_wmark_pages(zone) -
>+			low_wmark_pages(zone);
>+	}
> }
>
> static inline int
>@@ -2451,9 +2495,8 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
> 		goto nopage;
>
> restart:
>-	if (!(gfp_mask & __GFP_NO_KSWAPD))
>-		wake_all_kswapd(order, zonelist, high_zoneidx,
>-						zone_idx(preferred_zone));
>+	prepare_slowpath(gfp_mask, order, zonelist,
>+			 high_zoneidx, preferred_zone);
>
> 	/*
> 	 * OK, we're below the kswapd watermark and have kicked background
>@@ -4754,6 +4797,9 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
> 		zone_seqlock_init(zone);
> 		zone->zone_pgdat = pgdat;
>
>+		/* For bootup, initialized properly in watermark setup */
>+		zone->alloc_batch = zone->managed_pages;
>+
> 		zone_pcp_init(zone);
> 		lruvec_init(&zone->lruvec);
> 		if (!size)
>@@ -5525,6 +5571,9 @@ static void __setup_per_zone_wmarks(void)
> 		zone->watermark[WMARK_LOW]  = min_wmark_pages(zone) + (tmp >> 2);
> 		zone->watermark[WMARK_HIGH] = min_wmark_pages(zone) + (tmp >> 1);
>
>+		zone->alloc_batch = high_wmark_pages(zone) -
>+			low_wmark_pages(zone);
>+
> 		setup_zone_migrate_reserve(zone);
> 		spin_unlock_irqrestore(&zone->lock, flags);
> 	}
>-- 
>1.8.3.2
>
>--
>To unsubscribe, send a message with 'unsubscribe linux-mm' in
>the body to majordomo@kvack.org.  For more info on Linux MM,
>see: http://www.linux-mm.org/ .
>Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-05 10:34   ` Wanpeng Li
@ 2013-08-05 11:34       ` Andrea Arcangeli
  0 siblings, 0 replies; 82+ messages in thread
From: Andrea Arcangeli @ 2013-08-05 11:34 UTC (permalink / raw)
  To: Wanpeng Li
  Cc: Johannes Weiner, Andrew Morton, Mel Gorman, Rik van Riel,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel

On Mon, Aug 05, 2013 at 06:34:56PM +0800, Wanpeng Li wrote:
> Why round robin allocator don't consume ZONE_DMA?

I guess lowmem reserve reserves it all, 4GB/256(ratio)=16MB.

The only way to relax it would be 1) to account depending on memblock
types and allow only the movable ones to bypass the lowmem reserve and
prevent a change from movable type if lowmem reserve doesn't pass, 2)
use memory migration to move the movable pages from the lower zones to
the highest zone if reclaim fails if __GFP_DMA32 or __GFP_DMA is set,
or highmem is missing on 32bit kernels. The last point involving
memory migration would work similarly to compaction but it isn't black
and white, and it would cost CPU as well. The memory used by the
simple lowmem reserve mechanism is probably not significant enough to
warrant such an effort.

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-05 11:34       ` Andrea Arcangeli
  0 siblings, 0 replies; 82+ messages in thread
From: Andrea Arcangeli @ 2013-08-05 11:34 UTC (permalink / raw)
  To: Wanpeng Li
  Cc: Johannes Weiner, Andrew Morton, Mel Gorman, Rik van Riel,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel

On Mon, Aug 05, 2013 at 06:34:56PM +0800, Wanpeng Li wrote:
> Why round robin allocator don't consume ZONE_DMA?

I guess lowmem reserve reserves it all, 4GB/256(ratio)=16MB.

The only way to relax it would be 1) to account depending on memblock
types and allow only the movable ones to bypass the lowmem reserve and
prevent a change from movable type if lowmem reserve doesn't pass, 2)
use memory migration to move the movable pages from the lower zones to
the highest zone if reclaim fails if __GFP_DMA32 or __GFP_DMA is set,
or highmem is missing on 32bit kernels. The last point involving
memory migration would work similarly to compaction but it isn't black
and white, and it would cost CPU as well. The memory used by the
simple lowmem reserve mechanism is probably not significant enough to
warrant such an effort.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-05 11:34       ` Andrea Arcangeli
  (?)
@ 2013-08-05 13:11       ` Wanpeng Li
  -1 siblings, 0 replies; 82+ messages in thread
From: Wanpeng Li @ 2013-08-05 13:11 UTC (permalink / raw)
  To: Andrea Arcangeli
  Cc: Johannes Weiner, Andrew Morton, Mel Gorman, Rik van Riel,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel

On Mon, Aug 05, 2013 at 01:34:23PM +0200, Andrea Arcangeli wrote:
>On Mon, Aug 05, 2013 at 06:34:56PM +0800, Wanpeng Li wrote:
>> Why round robin allocator don't consume ZONE_DMA?
>
>I guess lowmem reserve reserves it all, 4GB/256(ratio)=16MB.
>

Ah, lowmem reservation reserve all ZONE_DMA:

x86_64 4GB

protection: (0, 3251, 4009, 4009)

Thanks for pointing out. ;-)

>The only way to relax it would be 1) to account depending on memblock
>types and allow only the movable ones to bypass the lowmem reserve and
>prevent a change from movable type if lowmem reserve doesn't pass, 2)
>use memory migration to move the movable pages from the lower zones to
>the highest zone if reclaim fails if __GFP_DMA32 or __GFP_DMA is set,
>or highmem is missing on 32bit kernels. The last point involving
>memory migration would work similarly to compaction but it isn't black
>and white, and it would cost CPU as well. The memory used by the
>simple lowmem reserve mechanism is probably not significant enough to
>warrant such an effort.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-05 11:34       ` Andrea Arcangeli
  (?)
  (?)
@ 2013-08-05 13:11       ` Wanpeng Li
  -1 siblings, 0 replies; 82+ messages in thread
From: Wanpeng Li @ 2013-08-05 13:11 UTC (permalink / raw)
  To: Andrea Arcangeli
  Cc: Johannes Weiner, Andrew Morton, Mel Gorman, Rik van Riel,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel

On Mon, Aug 05, 2013 at 01:34:23PM +0200, Andrea Arcangeli wrote:
>On Mon, Aug 05, 2013 at 06:34:56PM +0800, Wanpeng Li wrote:
>> Why round robin allocator don't consume ZONE_DMA?
>
>I guess lowmem reserve reserves it all, 4GB/256(ratio)=16MB.
>

Ah, lowmem reservation reserve all ZONE_DMA:

x86_64 4GB

protection: (0, 3251, 4009, 4009)

Thanks for pointing out. ;-)

>The only way to relax it would be 1) to account depending on memblock
>types and allow only the movable ones to bypass the lowmem reserve and
>prevent a change from movable type if lowmem reserve doesn't pass, 2)
>use memory migration to move the movable pages from the lower zones to
>the highest zone if reclaim fails if __GFP_DMA32 or __GFP_DMA is set,
>or highmem is missing on 32bit kernels. The last point involving
>memory migration would work similarly to compaction but it isn't black
>and white, and it would cost CPU as well. The memory used by the
>simple lowmem reserve mechanism is probably not significant enough to
>warrant such an effort.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 1/3] mm: vmscan: fix numa reclaim balance problem in kswapd
  2013-08-02 15:37   ` Johannes Weiner
@ 2013-08-07 14:15     ` Mel Gorman
  -1 siblings, 0 replies; 82+ messages in thread
From: Mel Gorman @ 2013-08-07 14:15 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Fri, Aug 02, 2013 at 11:37:24AM -0400, Johannes Weiner wrote:
> When the page allocator fails to get a page from all zones in its
> given zonelist, it wakes up the per-node kswapds for all zones that
> are at their low watermark.
> 
> However, with a system under load the free pages in a zone can
> fluctuate enough that the allocation fails but the kswapd wakeup is
> also skipped while the zone is still really close to the low
> watermark.
> 
> When one node misses a wakeup like this, it won't be aged before all
> the other node's zones are down to their low watermarks again.  And
> skipping a full aging cycle is an obvious fairness problem.
> 
> Kswapd runs until the high watermarks are restored, so it should also
> be woken when the high watermarks are not met.  This ages nodes more
> equally and creates a safety margin for the page counter fluctuation.
> 
> By using zone_balanced(), it will now check, in addition to the
> watermark, if compaction requires more order-0 pages to create a
> higher order page.
> 
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> Reviewed-by: Rik van Riel <riel@redhat.com>

Acked-by: Mel Gorman <mgorman@suse.de>

-- 
Mel Gorman
SUSE Labs

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 1/3] mm: vmscan: fix numa reclaim balance problem in kswapd
@ 2013-08-07 14:15     ` Mel Gorman
  0 siblings, 0 replies; 82+ messages in thread
From: Mel Gorman @ 2013-08-07 14:15 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Fri, Aug 02, 2013 at 11:37:24AM -0400, Johannes Weiner wrote:
> When the page allocator fails to get a page from all zones in its
> given zonelist, it wakes up the per-node kswapds for all zones that
> are at their low watermark.
> 
> However, with a system under load the free pages in a zone can
> fluctuate enough that the allocation fails but the kswapd wakeup is
> also skipped while the zone is still really close to the low
> watermark.
> 
> When one node misses a wakeup like this, it won't be aged before all
> the other node's zones are down to their low watermarks again.  And
> skipping a full aging cycle is an obvious fairness problem.
> 
> Kswapd runs until the high watermarks are restored, so it should also
> be woken when the high watermarks are not met.  This ages nodes more
> equally and creates a safety margin for the page counter fluctuation.
> 
> By using zone_balanced(), it will now check, in addition to the
> watermark, if compaction requires more order-0 pages to create a
> higher order page.
> 
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> Reviewed-by: Rik van Riel <riel@redhat.com>

Acked-by: Mel Gorman <mgorman@suse.de>

-- 
Mel Gorman
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 2/3] mm: page_alloc: rearrange watermark checking in get_page_from_freelist
  2013-08-02 15:37   ` Johannes Weiner
@ 2013-08-07 14:20     ` Mel Gorman
  -1 siblings, 0 replies; 82+ messages in thread
From: Mel Gorman @ 2013-08-07 14:20 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Fri, Aug 02, 2013 at 11:37:25AM -0400, Johannes Weiner wrote:
> Allocations that do not have to respect the watermarks are rare
> high-priority events.  Reorder the code such that per-zone dirty
> limits and future checks important only to regular page allocations
> are ignored in these extraordinary situations.
> 
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> Reviewed-by: Rik van Riel <riel@redhat.com>

Acked-by: Mel Gorman <mgorman@suse.de>

-- 
Mel Gorman
SUSE Labs

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 2/3] mm: page_alloc: rearrange watermark checking in get_page_from_freelist
@ 2013-08-07 14:20     ` Mel Gorman
  0 siblings, 0 replies; 82+ messages in thread
From: Mel Gorman @ 2013-08-07 14:20 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Fri, Aug 02, 2013 at 11:37:25AM -0400, Johannes Weiner wrote:
> Allocations that do not have to respect the watermarks are rare
> high-priority events.  Reorder the code such that per-zone dirty
> limits and future checks important only to regular page allocations
> are ignored in these extraordinary situations.
> 
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> Reviewed-by: Rik van Riel <riel@redhat.com>

Acked-by: Mel Gorman <mgorman@suse.de>

-- 
Mel Gorman
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-02 15:37   ` Johannes Weiner
@ 2013-08-07 14:58     ` Mel Gorman
  -1 siblings, 0 replies; 82+ messages in thread
From: Mel Gorman @ 2013-08-07 14:58 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> Each zone that holds userspace pages of one workload must be aged at a
> speed proportional to the zone size.  Otherwise, the time an
> individual page gets to stay in memory depends on the zone it happened
> to be allocated in.  Asymmetry in the zone aging creates rather
> unpredictable aging behavior and results in the wrong pages being
> reclaimed, activated etc.
> 
> But exactly this happens right now because of the way the page
> allocator and kswapd interact.  The page allocator uses per-node lists
> of all zones in the system, ordered by preference, when allocating a
> new page.  When the first iteration does not yield any results, kswapd
> is woken up and the allocator retries.  Due to the way kswapd reclaims
> zones below the high watermark while a zone can be allocated from when
> it is above the low watermark, the allocator may keep kswapd running
> while kswapd reclaim ensures that the page allocator can keep
> allocating from the first zone in the zonelist for extended periods of
> time.  Meanwhile the other zones rarely see new allocations and thus
> get aged much slower in comparison.
> 
> The result is that the occasional page placed in lower zones gets
> relatively more time in memory, even gets promoted to the active list
> after its peers have long been evicted.  Meanwhile, the bulk of the
> working set may be thrashing on the preferred zone even though there
> may be significant amounts of memory available in the lower zones.
> 
> Even the most basic test -- repeatedly reading a file slightly bigger
> than memory -- shows how broken the zone aging is.  In this scenario,
> no single page should be able stay in memory long enough to get
> referenced twice and activated, but activation happens in spades:
> 
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 0
>       nr_inactive_file 0
>       nr_active_file 8
>       nr_inactive_file 1582
>       nr_active_file 11994
>   $ cat data data data data >/dev/null
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 70
>       nr_inactive_file 258753
>       nr_active_file 443214
>       nr_inactive_file 149793
>       nr_active_file 12021
> 
> Fix this with a very simple round robin allocator.  Each zone is
> allowed a batch of allocations that is proportional to the zone's
> size, after which it is treated as full.  The batch counters are reset
> when all zones have been tried and the allocator enters the slowpath
> and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
> spread out to all available/allowable zones:
> 
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 0
>       nr_inactive_file 174
>       nr_active_file 4865
>       nr_inactive_file 53
>       nr_active_file 860
>   $ cat data data data data >/dev/null
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 0
>       nr_inactive_file 666622
>       nr_active_file 4988
>       nr_inactive_file 190969
>       nr_active_file 937
> 
> When zone_reclaim_mode is enabled, allocations will now spread out to
> all zones on the local node, not just the first preferred zone (which
> on a 4G node might be a tiny Normal zone).
> 
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> Tested-by: Zlatko Calusic <zcalusic@bitsync.net>
> ---
>  include/linux/mmzone.h |  1 +
>  mm/page_alloc.c        | 69 ++++++++++++++++++++++++++++++++++++++++++--------
>  2 files changed, 60 insertions(+), 10 deletions(-)
> 
> diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
> index af4a3b7..dcad2ab 100644
> --- a/include/linux/mmzone.h
> +++ b/include/linux/mmzone.h
> @@ -352,6 +352,7 @@ struct zone {
>  	 * free areas of different sizes
>  	 */
>  	spinlock_t		lock;
> +	int			alloc_batch;
>  	int                     all_unreclaimable; /* All pages pinned */
>  #if defined CONFIG_COMPACTION || defined CONFIG_CMA
>  	/* Set to true when the PG_migrate_skip bits should be cleared */

This adds a dirty cache line that is updated on every allocation even if
it's from the per-cpu allocator. I am concerned that this will introduce
noticable overhead in the allocator paths on large machines running
allocator intensive workloads.

Would it be possible to move it into the per-cpu pageset? I understand
that hte round-robin nature will then depend on what CPU is running and
the performance characterisics will be different. There might even be an
adverse workload that uses all the batches from all available CPUs until
it is essentially the same problem but that would be a very worst case.
I would hope that in general it would work without adding a big source of
dirty cache line bouncing in the middle of the allocator.

What I do not know offhand is how much space there is in that pageset
thing before it grows by another cache line.

I should note that the page allocator as it currently stands is not
great at avoiding dirtying cache lines. In the slow path in particular
it can suffer very badly when updating struct page. The per-cpu
allocator mitigates the problem a bit in most of the fast paths though.

> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 3b27d3e..b2cdfd0 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -1817,6 +1817,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
>  	bitmap_zero(zlc->fullzones, MAX_ZONES_PER_ZONELIST);
>  }
>  
> +static bool zone_local(struct zone *local_zone, struct zone *zone)
> +{
> +	return node_distance(local_zone->node, zone->node) == LOCAL_DISTANCE;
> +}
> +
>  static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
>  {
>  	return node_isset(local_zone->node, zone->zone_pgdat->reclaim_nodes);
> @@ -1854,6 +1859,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
>  {
>  }
>  
> +static bool zone_local(struct zone *local_zone, struct zone *zone)
> +{
> +	return true;
> +}
> +
>  static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
>  {
>  	return true;
> @@ -1901,6 +1911,26 @@ zonelist_scan:
>  		if (alloc_flags & ALLOC_NO_WATERMARKS)
>  			goto try_this_zone;
>  		/*
> +		 * Distribute pages in proportion to the individual
> +		 * zone size to ensure fair page aging.  The zone a
> +		 * page was allocated in should have no effect on the
> +		 * time the page has in memory before being reclaimed.
> +		 *
> +		 * When zone_reclaim_mode is enabled, try to stay in
> +		 * local zones in the fastpath.  If that fails, the
> +		 * slowpath is entered, which will do another pass
> +		 * starting with the local zones, but ultimately fall
> +		 * back to remote zones that do not partake in the
> +		 * fairness round-robin cycle of this zonelist.
> +		 */
> +		if (alloc_flags & ALLOC_WMARK_LOW) {
> +			if (zone->alloc_batch <= 0)
> +				continue;
> +			if (zone_reclaim_mode &&
> +			    !zone_local(preferred_zone, zone))
> +				continue;
> +		}
> +		/*
>  		 * When allocating a page cache page for writing, we
>  		 * want to get it from a zone that is within its dirty
>  		 * limit, such that no single zone holds more than its
> @@ -2006,7 +2036,8 @@ this_zone_full:
>  		goto zonelist_scan;
>  	}
>  
> -	if (page)
> +	if (page) {
> +		zone->alloc_batch -= 1U << order;

This line is where I think there will be noticable increases in cache
misses when running parallel tests. PFT from mmtests on a large machine
might be able to show the problem.

>  		/*
>  		 * page->pfmemalloc is set when ALLOC_NO_WATERMARKS was
>  		 * necessary to allocate the page. The expectation is
> @@ -2015,6 +2046,7 @@ this_zone_full:
>  		 * for !PFMEMALLOC purposes.
>  		 */
>  		page->pfmemalloc = !!(alloc_flags & ALLOC_NO_WATERMARKS);
> +	}
>  
>  	return page;
>  }
> @@ -2346,16 +2378,28 @@ __alloc_pages_high_priority(gfp_t gfp_mask, unsigned int order,
>  	return page;
>  }
>  
> -static inline
> -void wake_all_kswapd(unsigned int order, struct zonelist *zonelist,
> -						enum zone_type high_zoneidx,
> -						enum zone_type classzone_idx)
> +static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
> +			     struct zonelist *zonelist,
> +			     enum zone_type high_zoneidx,
> +			     struct zone *preferred_zone)
>  {
>  	struct zoneref *z;
>  	struct zone *zone;
>  
> -	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx)
> -		wakeup_kswapd(zone, order, classzone_idx);
> +	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
> +		if (!(gfp_mask & __GFP_NO_KSWAPD))
> +			wakeup_kswapd(zone, order, zone_idx(preferred_zone));
> +		/*
> +		 * Only reset the batches of zones that were actually
> +		 * considered in the fast path, we don't want to
> +		 * thrash fairness information for zones that are not
> +		 * actually part of this zonelist's round-robin cycle.
> +		 */
> +		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
> +			continue;
> +		zone->alloc_batch = high_wmark_pages(zone) -
> +			low_wmark_pages(zone);
> +	}

We now call wakeup_kswapd() when the batches for the round-robin are
expired. In some circumstances this can be expensive in its own right if
it calls zone_watermark_ok_safe() from zone_balanced().

If we are entering the slowpath because the batches are expired should
the fast path reset the alloc_batches once and retry the fast path before
wakeup_kswapd?

>  }
>  
>  static inline int
> @@ -2451,9 +2495,8 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  		goto nopage;
>  
>  restart:
> -	if (!(gfp_mask & __GFP_NO_KSWAPD))
> -		wake_all_kswapd(order, zonelist, high_zoneidx,
> -						zone_idx(preferred_zone));
> +	prepare_slowpath(gfp_mask, order, zonelist,
> +			 high_zoneidx, preferred_zone);
>  
>  	/*
>  	 * OK, we're below the kswapd watermark and have kicked background
> @@ -4754,6 +4797,9 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
>  		zone_seqlock_init(zone);
>  		zone->zone_pgdat = pgdat;
>  
> +		/* For bootup, initialized properly in watermark setup */
> +		zone->alloc_batch = zone->managed_pages;
> +
>  		zone_pcp_init(zone);
>  		lruvec_init(&zone->lruvec);
>  		if (!size)
> @@ -5525,6 +5571,9 @@ static void __setup_per_zone_wmarks(void)
>  		zone->watermark[WMARK_LOW]  = min_wmark_pages(zone) + (tmp >> 2);
>  		zone->watermark[WMARK_HIGH] = min_wmark_pages(zone) + (tmp >> 1);
>  
> +		zone->alloc_batch = high_wmark_pages(zone) -
> +			low_wmark_pages(zone);
> +
>  		setup_zone_migrate_reserve(zone);
>  		spin_unlock_irqrestore(&zone->lock, flags);
>  	}
> -- 
> 1.8.3.2
> 

-- 
Mel Gorman
SUSE Labs

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-07 14:58     ` Mel Gorman
  0 siblings, 0 replies; 82+ messages in thread
From: Mel Gorman @ 2013-08-07 14:58 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> Each zone that holds userspace pages of one workload must be aged at a
> speed proportional to the zone size.  Otherwise, the time an
> individual page gets to stay in memory depends on the zone it happened
> to be allocated in.  Asymmetry in the zone aging creates rather
> unpredictable aging behavior and results in the wrong pages being
> reclaimed, activated etc.
> 
> But exactly this happens right now because of the way the page
> allocator and kswapd interact.  The page allocator uses per-node lists
> of all zones in the system, ordered by preference, when allocating a
> new page.  When the first iteration does not yield any results, kswapd
> is woken up and the allocator retries.  Due to the way kswapd reclaims
> zones below the high watermark while a zone can be allocated from when
> it is above the low watermark, the allocator may keep kswapd running
> while kswapd reclaim ensures that the page allocator can keep
> allocating from the first zone in the zonelist for extended periods of
> time.  Meanwhile the other zones rarely see new allocations and thus
> get aged much slower in comparison.
> 
> The result is that the occasional page placed in lower zones gets
> relatively more time in memory, even gets promoted to the active list
> after its peers have long been evicted.  Meanwhile, the bulk of the
> working set may be thrashing on the preferred zone even though there
> may be significant amounts of memory available in the lower zones.
> 
> Even the most basic test -- repeatedly reading a file slightly bigger
> than memory -- shows how broken the zone aging is.  In this scenario,
> no single page should be able stay in memory long enough to get
> referenced twice and activated, but activation happens in spades:
> 
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 0
>       nr_inactive_file 0
>       nr_active_file 8
>       nr_inactive_file 1582
>       nr_active_file 11994
>   $ cat data data data data >/dev/null
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 70
>       nr_inactive_file 258753
>       nr_active_file 443214
>       nr_inactive_file 149793
>       nr_active_file 12021
> 
> Fix this with a very simple round robin allocator.  Each zone is
> allowed a batch of allocations that is proportional to the zone's
> size, after which it is treated as full.  The batch counters are reset
> when all zones have been tried and the allocator enters the slowpath
> and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
> spread out to all available/allowable zones:
> 
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 0
>       nr_inactive_file 174
>       nr_active_file 4865
>       nr_inactive_file 53
>       nr_active_file 860
>   $ cat data data data data >/dev/null
>   $ grep active_file /proc/zoneinfo
>       nr_inactive_file 0
>       nr_active_file 0
>       nr_inactive_file 666622
>       nr_active_file 4988
>       nr_inactive_file 190969
>       nr_active_file 937
> 
> When zone_reclaim_mode is enabled, allocations will now spread out to
> all zones on the local node, not just the first preferred zone (which
> on a 4G node might be a tiny Normal zone).
> 
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> Tested-by: Zlatko Calusic <zcalusic@bitsync.net>
> ---
>  include/linux/mmzone.h |  1 +
>  mm/page_alloc.c        | 69 ++++++++++++++++++++++++++++++++++++++++++--------
>  2 files changed, 60 insertions(+), 10 deletions(-)
> 
> diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
> index af4a3b7..dcad2ab 100644
> --- a/include/linux/mmzone.h
> +++ b/include/linux/mmzone.h
> @@ -352,6 +352,7 @@ struct zone {
>  	 * free areas of different sizes
>  	 */
>  	spinlock_t		lock;
> +	int			alloc_batch;
>  	int                     all_unreclaimable; /* All pages pinned */
>  #if defined CONFIG_COMPACTION || defined CONFIG_CMA
>  	/* Set to true when the PG_migrate_skip bits should be cleared */

This adds a dirty cache line that is updated on every allocation even if
it's from the per-cpu allocator. I am concerned that this will introduce
noticable overhead in the allocator paths on large machines running
allocator intensive workloads.

Would it be possible to move it into the per-cpu pageset? I understand
that hte round-robin nature will then depend on what CPU is running and
the performance characterisics will be different. There might even be an
adverse workload that uses all the batches from all available CPUs until
it is essentially the same problem but that would be a very worst case.
I would hope that in general it would work without adding a big source of
dirty cache line bouncing in the middle of the allocator.

What I do not know offhand is how much space there is in that pageset
thing before it grows by another cache line.

I should note that the page allocator as it currently stands is not
great at avoiding dirtying cache lines. In the slow path in particular
it can suffer very badly when updating struct page. The per-cpu
allocator mitigates the problem a bit in most of the fast paths though.

> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 3b27d3e..b2cdfd0 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -1817,6 +1817,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
>  	bitmap_zero(zlc->fullzones, MAX_ZONES_PER_ZONELIST);
>  }
>  
> +static bool zone_local(struct zone *local_zone, struct zone *zone)
> +{
> +	return node_distance(local_zone->node, zone->node) == LOCAL_DISTANCE;
> +}
> +
>  static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
>  {
>  	return node_isset(local_zone->node, zone->zone_pgdat->reclaim_nodes);
> @@ -1854,6 +1859,11 @@ static void zlc_clear_zones_full(struct zonelist *zonelist)
>  {
>  }
>  
> +static bool zone_local(struct zone *local_zone, struct zone *zone)
> +{
> +	return true;
> +}
> +
>  static bool zone_allows_reclaim(struct zone *local_zone, struct zone *zone)
>  {
>  	return true;
> @@ -1901,6 +1911,26 @@ zonelist_scan:
>  		if (alloc_flags & ALLOC_NO_WATERMARKS)
>  			goto try_this_zone;
>  		/*
> +		 * Distribute pages in proportion to the individual
> +		 * zone size to ensure fair page aging.  The zone a
> +		 * page was allocated in should have no effect on the
> +		 * time the page has in memory before being reclaimed.
> +		 *
> +		 * When zone_reclaim_mode is enabled, try to stay in
> +		 * local zones in the fastpath.  If that fails, the
> +		 * slowpath is entered, which will do another pass
> +		 * starting with the local zones, but ultimately fall
> +		 * back to remote zones that do not partake in the
> +		 * fairness round-robin cycle of this zonelist.
> +		 */
> +		if (alloc_flags & ALLOC_WMARK_LOW) {
> +			if (zone->alloc_batch <= 0)
> +				continue;
> +			if (zone_reclaim_mode &&
> +			    !zone_local(preferred_zone, zone))
> +				continue;
> +		}
> +		/*
>  		 * When allocating a page cache page for writing, we
>  		 * want to get it from a zone that is within its dirty
>  		 * limit, such that no single zone holds more than its
> @@ -2006,7 +2036,8 @@ this_zone_full:
>  		goto zonelist_scan;
>  	}
>  
> -	if (page)
> +	if (page) {
> +		zone->alloc_batch -= 1U << order;

This line is where I think there will be noticable increases in cache
misses when running parallel tests. PFT from mmtests on a large machine
might be able to show the problem.

>  		/*
>  		 * page->pfmemalloc is set when ALLOC_NO_WATERMARKS was
>  		 * necessary to allocate the page. The expectation is
> @@ -2015,6 +2046,7 @@ this_zone_full:
>  		 * for !PFMEMALLOC purposes.
>  		 */
>  		page->pfmemalloc = !!(alloc_flags & ALLOC_NO_WATERMARKS);
> +	}
>  
>  	return page;
>  }
> @@ -2346,16 +2378,28 @@ __alloc_pages_high_priority(gfp_t gfp_mask, unsigned int order,
>  	return page;
>  }
>  
> -static inline
> -void wake_all_kswapd(unsigned int order, struct zonelist *zonelist,
> -						enum zone_type high_zoneidx,
> -						enum zone_type classzone_idx)
> +static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
> +			     struct zonelist *zonelist,
> +			     enum zone_type high_zoneidx,
> +			     struct zone *preferred_zone)
>  {
>  	struct zoneref *z;
>  	struct zone *zone;
>  
> -	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx)
> -		wakeup_kswapd(zone, order, classzone_idx);
> +	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
> +		if (!(gfp_mask & __GFP_NO_KSWAPD))
> +			wakeup_kswapd(zone, order, zone_idx(preferred_zone));
> +		/*
> +		 * Only reset the batches of zones that were actually
> +		 * considered in the fast path, we don't want to
> +		 * thrash fairness information for zones that are not
> +		 * actually part of this zonelist's round-robin cycle.
> +		 */
> +		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
> +			continue;
> +		zone->alloc_batch = high_wmark_pages(zone) -
> +			low_wmark_pages(zone);
> +	}

We now call wakeup_kswapd() when the batches for the round-robin are
expired. In some circumstances this can be expensive in its own right if
it calls zone_watermark_ok_safe() from zone_balanced().

If we are entering the slowpath because the batches are expired should
the fast path reset the alloc_batches once and retry the fast path before
wakeup_kswapd?

>  }
>  
>  static inline int
> @@ -2451,9 +2495,8 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  		goto nopage;
>  
>  restart:
> -	if (!(gfp_mask & __GFP_NO_KSWAPD))
> -		wake_all_kswapd(order, zonelist, high_zoneidx,
> -						zone_idx(preferred_zone));
> +	prepare_slowpath(gfp_mask, order, zonelist,
> +			 high_zoneidx, preferred_zone);
>  
>  	/*
>  	 * OK, we're below the kswapd watermark and have kicked background
> @@ -4754,6 +4797,9 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
>  		zone_seqlock_init(zone);
>  		zone->zone_pgdat = pgdat;
>  
> +		/* For bootup, initialized properly in watermark setup */
> +		zone->alloc_batch = zone->managed_pages;
> +
>  		zone_pcp_init(zone);
>  		lruvec_init(&zone->lruvec);
>  		if (!size)
> @@ -5525,6 +5571,9 @@ static void __setup_per_zone_wmarks(void)
>  		zone->watermark[WMARK_LOW]  = min_wmark_pages(zone) + (tmp >> 2);
>  		zone->watermark[WMARK_HIGH] = min_wmark_pages(zone) + (tmp >> 1);
>  
> +		zone->alloc_batch = high_wmark_pages(zone) -
> +			low_wmark_pages(zone);
> +
>  		setup_zone_migrate_reserve(zone);
>  		spin_unlock_irqrestore(&zone->lock, flags);
>  	}
> -- 
> 1.8.3.2
> 

-- 
Mel Gorman
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-07 14:58     ` Mel Gorman
@ 2013-08-07 15:37       ` Johannes Weiner
  -1 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-07 15:37 UTC (permalink / raw)
  To: Mel Gorman
  Cc: Andrew Morton, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Wed, Aug 07, 2013 at 03:58:28PM +0100, Mel Gorman wrote:
> On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> > Each zone that holds userspace pages of one workload must be aged at a
> > speed proportional to the zone size.  Otherwise, the time an
> > individual page gets to stay in memory depends on the zone it happened
> > to be allocated in.  Asymmetry in the zone aging creates rather
> > unpredictable aging behavior and results in the wrong pages being
> > reclaimed, activated etc.
> > 
> > But exactly this happens right now because of the way the page
> > allocator and kswapd interact.  The page allocator uses per-node lists
> > of all zones in the system, ordered by preference, when allocating a
> > new page.  When the first iteration does not yield any results, kswapd
> > is woken up and the allocator retries.  Due to the way kswapd reclaims
> > zones below the high watermark while a zone can be allocated from when
> > it is above the low watermark, the allocator may keep kswapd running
> > while kswapd reclaim ensures that the page allocator can keep
> > allocating from the first zone in the zonelist for extended periods of
> > time.  Meanwhile the other zones rarely see new allocations and thus
> > get aged much slower in comparison.
> > 
> > The result is that the occasional page placed in lower zones gets
> > relatively more time in memory, even gets promoted to the active list
> > after its peers have long been evicted.  Meanwhile, the bulk of the
> > working set may be thrashing on the preferred zone even though there
> > may be significant amounts of memory available in the lower zones.
> > 
> > Even the most basic test -- repeatedly reading a file slightly bigger
> > than memory -- shows how broken the zone aging is.  In this scenario,
> > no single page should be able stay in memory long enough to get
> > referenced twice and activated, but activation happens in spades:
> > 
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 0
> >       nr_inactive_file 0
> >       nr_active_file 8
> >       nr_inactive_file 1582
> >       nr_active_file 11994
> >   $ cat data data data data >/dev/null
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 70
> >       nr_inactive_file 258753
> >       nr_active_file 443214
> >       nr_inactive_file 149793
> >       nr_active_file 12021
> > 
> > Fix this with a very simple round robin allocator.  Each zone is
> > allowed a batch of allocations that is proportional to the zone's
> > size, after which it is treated as full.  The batch counters are reset
> > when all zones have been tried and the allocator enters the slowpath
> > and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
> > spread out to all available/allowable zones:
> > 
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 0
> >       nr_inactive_file 174
> >       nr_active_file 4865
> >       nr_inactive_file 53
> >       nr_active_file 860
> >   $ cat data data data data >/dev/null
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 0
> >       nr_inactive_file 666622
> >       nr_active_file 4988
> >       nr_inactive_file 190969
> >       nr_active_file 937
> > 
> > When zone_reclaim_mode is enabled, allocations will now spread out to
> > all zones on the local node, not just the first preferred zone (which
> > on a 4G node might be a tiny Normal zone).
> > 
> > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> > Tested-by: Zlatko Calusic <zcalusic@bitsync.net>
> > ---
> >  include/linux/mmzone.h |  1 +
> >  mm/page_alloc.c        | 69 ++++++++++++++++++++++++++++++++++++++++++--------
> >  2 files changed, 60 insertions(+), 10 deletions(-)
> > 
> > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
> > index af4a3b7..dcad2ab 100644
> > --- a/include/linux/mmzone.h
> > +++ b/include/linux/mmzone.h
> > @@ -352,6 +352,7 @@ struct zone {
> >  	 * free areas of different sizes
> >  	 */
> >  	spinlock_t		lock;
> > +	int			alloc_batch;
> >  	int                     all_unreclaimable; /* All pages pinned */
> >  #if defined CONFIG_COMPACTION || defined CONFIG_CMA
> >  	/* Set to true when the PG_migrate_skip bits should be cleared */
> 
> This adds a dirty cache line that is updated on every allocation even if
> it's from the per-cpu allocator. I am concerned that this will introduce
> noticable overhead in the allocator paths on large machines running
> allocator intensive workloads.
> 
> Would it be possible to move it into the per-cpu pageset? I understand
> that hte round-robin nature will then depend on what CPU is running and
> the performance characterisics will be different. There might even be an
> adverse workload that uses all the batches from all available CPUs until
> it is essentially the same problem but that would be a very worst case.
> I would hope that in general it would work without adding a big source of
> dirty cache line bouncing in the middle of the allocator.

Rik made the same suggestion.  The per-cpu error is one thing, the
problem is if the allocating task and kswapd run on the same CPU and
bypass the round-robin allocator completely, at which point we are
back to square one.  We'd have to reduce the per-cpu lists from a pool
to strict batching of frees and allocs without reuse in between.  That
might be doable, I'll give this another look.

> > @@ -2006,7 +2036,8 @@ this_zone_full:
> >  		goto zonelist_scan;
> >  	}
> >  
> > -	if (page)
> > +	if (page) {
> > +		zone->alloc_batch -= 1U << order;
> 
> This line is where I think there will be noticable increases in cache
> misses when running parallel tests. PFT from mmtests on a large machine
> might be able to show the problem.

I tested this back then with the original atomic ops on a two socket
machine:

pft
                              BASE               RRALLOC            WORKINGSET
User       1       0.0235 (  0.00%)       0.0275 (-17.02%)       0.0270 (-14.89%)
User       2       0.0275 (  0.00%)       0.0275 ( -0.00%)       0.0285 ( -3.64%)
User       3       0.0330 (  0.00%)       0.0365 (-10.61%)       0.0335 ( -1.52%)
User       4       0.0390 (  0.00%)       0.0390 (  0.00%)       0.0380 (  2.56%)
System     1       0.2645 (  0.00%)       0.2620 (  0.95%)       0.2625 (  0.76%)
System     2       0.3215 (  0.00%)       0.3310 ( -2.95%)       0.3285 ( -2.18%)
System     3       0.3935 (  0.00%)       0.4080 ( -3.68%)       0.4130 ( -4.96%)
System     4       0.4920 (  0.00%)       0.5030 ( -2.24%)       0.5045 ( -2.54%)
Elapsed    1       0.2905 (  0.00%)       0.2905 (  0.00%)       0.2905 (  0.00%)
Elapsed    2       0.1800 (  0.00%)       0.1800 (  0.00%)       0.1800 (  0.00%)
Elapsed    3       0.1500 (  0.00%)       0.1600 ( -6.67%)       0.1600 ( -6.67%)
Elapsed    4       0.1305 (  0.00%)       0.1420 ( -8.81%)       0.1415 ( -8.43%)
Faults/cpu 1  667251.7997 (  0.00%)  666296.4749 ( -0.14%)  667880.8099 (  0.09%)
Faults/cpu 2  551464.0345 (  0.00%)  536113.4630 ( -2.78%)  538286.2087 ( -2.39%)
Faults/cpu 3  452403.4425 (  0.00%)  433856.5320 ( -4.10%)  432193.9888 ( -4.47%)
Faults/cpu 4  362691.4491 (  0.00%)  356514.8821 ( -1.70%)  356436.5711 ( -1.72%)
Faults/sec 1  663612.5980 (  0.00%)  662501.4959 ( -0.17%)  664037.3123 (  0.06%)
Faults/sec 2 1096166.5317 (  0.00%) 1064679.7154 ( -2.87%) 1068906.1040 ( -2.49%)
Faults/sec 3 1272925.4995 (  0.00%) 1209241.9167 ( -5.00%) 1202868.9190 ( -5.50%)
Faults/sec 4 1437691.1054 (  0.00%) 1362549.9877 ( -5.23%) 1381633.9889 ( -3.90%)

so a 2-5% regression in fault throughput on this machine.  I would
love to avoid it, but I don't think it's a show stopper if it buys
500% improvements in tests like parallelio on the same machine.

> > @@ -2346,16 +2378,28 @@ __alloc_pages_high_priority(gfp_t gfp_mask, unsigned int order,
> >  	return page;
> >  }
> >  
> > -static inline
> > -void wake_all_kswapd(unsigned int order, struct zonelist *zonelist,
> > -						enum zone_type high_zoneidx,
> > -						enum zone_type classzone_idx)
> > +static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
> > +			     struct zonelist *zonelist,
> > +			     enum zone_type high_zoneidx,
> > +			     struct zone *preferred_zone)
> >  {
> >  	struct zoneref *z;
> >  	struct zone *zone;
> >  
> > -	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx)
> > -		wakeup_kswapd(zone, order, classzone_idx);
> > +	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
> > +		if (!(gfp_mask & __GFP_NO_KSWAPD))
> > +			wakeup_kswapd(zone, order, zone_idx(preferred_zone));
> > +		/*
> > +		 * Only reset the batches of zones that were actually
> > +		 * considered in the fast path, we don't want to
> > +		 * thrash fairness information for zones that are not
> > +		 * actually part of this zonelist's round-robin cycle.
> > +		 */
> > +		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
> > +			continue;
> > +		zone->alloc_batch = high_wmark_pages(zone) -
> > +			low_wmark_pages(zone);
> > +	}
> 
> We now call wakeup_kswapd() when the batches for the round-robin are
> expired. In some circumstances this can be expensive in its own right if
> it calls zone_watermark_ok_safe() from zone_balanced().
> 
> If we are entering the slowpath because the batches are expired should
> the fast path reset the alloc_batches once and retry the fast path before
> wakeup_kswapd?

The batches are set up so that their expiration coincides with the
watermarks being hit.  I haven't actually double checked it, but I'm
going to run some tests to see if the wakeups increased significantly.

Thanks for the input, Mel!

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-07 15:37       ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-07 15:37 UTC (permalink / raw)
  To: Mel Gorman
  Cc: Andrew Morton, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Wed, Aug 07, 2013 at 03:58:28PM +0100, Mel Gorman wrote:
> On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> > Each zone that holds userspace pages of one workload must be aged at a
> > speed proportional to the zone size.  Otherwise, the time an
> > individual page gets to stay in memory depends on the zone it happened
> > to be allocated in.  Asymmetry in the zone aging creates rather
> > unpredictable aging behavior and results in the wrong pages being
> > reclaimed, activated etc.
> > 
> > But exactly this happens right now because of the way the page
> > allocator and kswapd interact.  The page allocator uses per-node lists
> > of all zones in the system, ordered by preference, when allocating a
> > new page.  When the first iteration does not yield any results, kswapd
> > is woken up and the allocator retries.  Due to the way kswapd reclaims
> > zones below the high watermark while a zone can be allocated from when
> > it is above the low watermark, the allocator may keep kswapd running
> > while kswapd reclaim ensures that the page allocator can keep
> > allocating from the first zone in the zonelist for extended periods of
> > time.  Meanwhile the other zones rarely see new allocations and thus
> > get aged much slower in comparison.
> > 
> > The result is that the occasional page placed in lower zones gets
> > relatively more time in memory, even gets promoted to the active list
> > after its peers have long been evicted.  Meanwhile, the bulk of the
> > working set may be thrashing on the preferred zone even though there
> > may be significant amounts of memory available in the lower zones.
> > 
> > Even the most basic test -- repeatedly reading a file slightly bigger
> > than memory -- shows how broken the zone aging is.  In this scenario,
> > no single page should be able stay in memory long enough to get
> > referenced twice and activated, but activation happens in spades:
> > 
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 0
> >       nr_inactive_file 0
> >       nr_active_file 8
> >       nr_inactive_file 1582
> >       nr_active_file 11994
> >   $ cat data data data data >/dev/null
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 70
> >       nr_inactive_file 258753
> >       nr_active_file 443214
> >       nr_inactive_file 149793
> >       nr_active_file 12021
> > 
> > Fix this with a very simple round robin allocator.  Each zone is
> > allowed a batch of allocations that is proportional to the zone's
> > size, after which it is treated as full.  The batch counters are reset
> > when all zones have been tried and the allocator enters the slowpath
> > and kicks off kswapd reclaim.  Allocation and reclaim is now fairly
> > spread out to all available/allowable zones:
> > 
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 0
> >       nr_inactive_file 174
> >       nr_active_file 4865
> >       nr_inactive_file 53
> >       nr_active_file 860
> >   $ cat data data data data >/dev/null
> >   $ grep active_file /proc/zoneinfo
> >       nr_inactive_file 0
> >       nr_active_file 0
> >       nr_inactive_file 666622
> >       nr_active_file 4988
> >       nr_inactive_file 190969
> >       nr_active_file 937
> > 
> > When zone_reclaim_mode is enabled, allocations will now spread out to
> > all zones on the local node, not just the first preferred zone (which
> > on a 4G node might be a tiny Normal zone).
> > 
> > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> > Tested-by: Zlatko Calusic <zcalusic@bitsync.net>
> > ---
> >  include/linux/mmzone.h |  1 +
> >  mm/page_alloc.c        | 69 ++++++++++++++++++++++++++++++++++++++++++--------
> >  2 files changed, 60 insertions(+), 10 deletions(-)
> > 
> > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
> > index af4a3b7..dcad2ab 100644
> > --- a/include/linux/mmzone.h
> > +++ b/include/linux/mmzone.h
> > @@ -352,6 +352,7 @@ struct zone {
> >  	 * free areas of different sizes
> >  	 */
> >  	spinlock_t		lock;
> > +	int			alloc_batch;
> >  	int                     all_unreclaimable; /* All pages pinned */
> >  #if defined CONFIG_COMPACTION || defined CONFIG_CMA
> >  	/* Set to true when the PG_migrate_skip bits should be cleared */
> 
> This adds a dirty cache line that is updated on every allocation even if
> it's from the per-cpu allocator. I am concerned that this will introduce
> noticable overhead in the allocator paths on large machines running
> allocator intensive workloads.
> 
> Would it be possible to move it into the per-cpu pageset? I understand
> that hte round-robin nature will then depend on what CPU is running and
> the performance characterisics will be different. There might even be an
> adverse workload that uses all the batches from all available CPUs until
> it is essentially the same problem but that would be a very worst case.
> I would hope that in general it would work without adding a big source of
> dirty cache line bouncing in the middle of the allocator.

Rik made the same suggestion.  The per-cpu error is one thing, the
problem is if the allocating task and kswapd run on the same CPU and
bypass the round-robin allocator completely, at which point we are
back to square one.  We'd have to reduce the per-cpu lists from a pool
to strict batching of frees and allocs without reuse in between.  That
might be doable, I'll give this another look.

> > @@ -2006,7 +2036,8 @@ this_zone_full:
> >  		goto zonelist_scan;
> >  	}
> >  
> > -	if (page)
> > +	if (page) {
> > +		zone->alloc_batch -= 1U << order;
> 
> This line is where I think there will be noticable increases in cache
> misses when running parallel tests. PFT from mmtests on a large machine
> might be able to show the problem.

I tested this back then with the original atomic ops on a two socket
machine:

pft
                              BASE               RRALLOC            WORKINGSET
User       1       0.0235 (  0.00%)       0.0275 (-17.02%)       0.0270 (-14.89%)
User       2       0.0275 (  0.00%)       0.0275 ( -0.00%)       0.0285 ( -3.64%)
User       3       0.0330 (  0.00%)       0.0365 (-10.61%)       0.0335 ( -1.52%)
User       4       0.0390 (  0.00%)       0.0390 (  0.00%)       0.0380 (  2.56%)
System     1       0.2645 (  0.00%)       0.2620 (  0.95%)       0.2625 (  0.76%)
System     2       0.3215 (  0.00%)       0.3310 ( -2.95%)       0.3285 ( -2.18%)
System     3       0.3935 (  0.00%)       0.4080 ( -3.68%)       0.4130 ( -4.96%)
System     4       0.4920 (  0.00%)       0.5030 ( -2.24%)       0.5045 ( -2.54%)
Elapsed    1       0.2905 (  0.00%)       0.2905 (  0.00%)       0.2905 (  0.00%)
Elapsed    2       0.1800 (  0.00%)       0.1800 (  0.00%)       0.1800 (  0.00%)
Elapsed    3       0.1500 (  0.00%)       0.1600 ( -6.67%)       0.1600 ( -6.67%)
Elapsed    4       0.1305 (  0.00%)       0.1420 ( -8.81%)       0.1415 ( -8.43%)
Faults/cpu 1  667251.7997 (  0.00%)  666296.4749 ( -0.14%)  667880.8099 (  0.09%)
Faults/cpu 2  551464.0345 (  0.00%)  536113.4630 ( -2.78%)  538286.2087 ( -2.39%)
Faults/cpu 3  452403.4425 (  0.00%)  433856.5320 ( -4.10%)  432193.9888 ( -4.47%)
Faults/cpu 4  362691.4491 (  0.00%)  356514.8821 ( -1.70%)  356436.5711 ( -1.72%)
Faults/sec 1  663612.5980 (  0.00%)  662501.4959 ( -0.17%)  664037.3123 (  0.06%)
Faults/sec 2 1096166.5317 (  0.00%) 1064679.7154 ( -2.87%) 1068906.1040 ( -2.49%)
Faults/sec 3 1272925.4995 (  0.00%) 1209241.9167 ( -5.00%) 1202868.9190 ( -5.50%)
Faults/sec 4 1437691.1054 (  0.00%) 1362549.9877 ( -5.23%) 1381633.9889 ( -3.90%)

so a 2-5% regression in fault throughput on this machine.  I would
love to avoid it, but I don't think it's a show stopper if it buys
500% improvements in tests like parallelio on the same machine.

> > @@ -2346,16 +2378,28 @@ __alloc_pages_high_priority(gfp_t gfp_mask, unsigned int order,
> >  	return page;
> >  }
> >  
> > -static inline
> > -void wake_all_kswapd(unsigned int order, struct zonelist *zonelist,
> > -						enum zone_type high_zoneidx,
> > -						enum zone_type classzone_idx)
> > +static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
> > +			     struct zonelist *zonelist,
> > +			     enum zone_type high_zoneidx,
> > +			     struct zone *preferred_zone)
> >  {
> >  	struct zoneref *z;
> >  	struct zone *zone;
> >  
> > -	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx)
> > -		wakeup_kswapd(zone, order, classzone_idx);
> > +	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
> > +		if (!(gfp_mask & __GFP_NO_KSWAPD))
> > +			wakeup_kswapd(zone, order, zone_idx(preferred_zone));
> > +		/*
> > +		 * Only reset the batches of zones that were actually
> > +		 * considered in the fast path, we don't want to
> > +		 * thrash fairness information for zones that are not
> > +		 * actually part of this zonelist's round-robin cycle.
> > +		 */
> > +		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
> > +			continue;
> > +		zone->alloc_batch = high_wmark_pages(zone) -
> > +			low_wmark_pages(zone);
> > +	}
> 
> We now call wakeup_kswapd() when the batches for the round-robin are
> expired. In some circumstances this can be expensive in its own right if
> it calls zone_watermark_ok_safe() from zone_balanced().
> 
> If we are entering the slowpath because the batches are expired should
> the fast path reset the alloc_batches once and retry the fast path before
> wakeup_kswapd?

The batches are set up so that their expiration coincides with the
watermarks being hit.  I haven't actually double checked it, but I'm
going to run some tests to see if the wakeups increased significantly.

Thanks for the input, Mel!

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-07 15:37       ` Johannes Weiner
@ 2013-08-08  4:16         ` Johannes Weiner
  -1 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-08  4:16 UTC (permalink / raw)
  To: Mel Gorman
  Cc: Andrew Morton, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
> On Wed, Aug 07, 2013 at 03:58:28PM +0100, Mel Gorman wrote:
> > On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> > > @@ -352,6 +352,7 @@ struct zone {
> > >  	 * free areas of different sizes
> > >  	 */
> > >  	spinlock_t		lock;
> > > +	int			alloc_batch;
> > >  	int                     all_unreclaimable; /* All pages pinned */
> > >  #if defined CONFIG_COMPACTION || defined CONFIG_CMA
> > >  	/* Set to true when the PG_migrate_skip bits should be cleared */
> > 
> > This adds a dirty cache line that is updated on every allocation even if
> > it's from the per-cpu allocator. I am concerned that this will introduce
> > noticable overhead in the allocator paths on large machines running
> > allocator intensive workloads.
> > 
> > Would it be possible to move it into the per-cpu pageset? I understand
> > that hte round-robin nature will then depend on what CPU is running and
> > the performance characterisics will be different. There might even be an
> > adverse workload that uses all the batches from all available CPUs until
> > it is essentially the same problem but that would be a very worst case.
> > I would hope that in general it would work without adding a big source of
> > dirty cache line bouncing in the middle of the allocator.
> 
> Rik made the same suggestion.  The per-cpu error is one thing, the
> problem is if the allocating task and kswapd run on the same CPU and
> bypass the round-robin allocator completely, at which point we are
> back to square one.  We'd have to reduce the per-cpu lists from a pool
> to strict batching of frees and allocs without reuse in between.  That
> might be doable, I'll give this another look.

I found a way.  It's still in the fast path, but I'm using vmstat
percpu counters and can stick the update inside the same irq-safe
section that does the other statistic updates.

On a two socket system with a small Normal zone, the results are as
follows (unfair: mmotm without the fairness allocator, fairpcp: the
fair allocator + the vmstat optimization):

---

pft
                             mmotm                 mmotm
                            unfair               fairpcp
User       1       0.0258 (  0.00%)       0.0254 (  1.40%)
User       2       0.0264 (  0.00%)       0.0263 (  0.21%)
User       3       0.0271 (  0.00%)       0.0277 ( -2.36%)
User       4       0.0287 (  0.00%)       0.0280 (  2.33%)
System     1       0.4904 (  0.00%)       0.4919 ( -0.29%)
System     2       0.6141 (  0.00%)       0.6183 ( -0.68%)
System     3       0.7346 (  0.00%)       0.7349 ( -0.04%)
System     4       0.8700 (  0.00%)       0.8704 ( -0.05%)
Elapsed    1       0.5164 (  0.00%)       0.5182 ( -0.35%)
Elapsed    2       0.3213 (  0.00%)       0.3235 ( -0.67%)
Elapsed    3       0.2800 (  0.00%)       0.2800 (  0.00%)
Elapsed    4       0.2304 (  0.00%)       0.2303 (  0.01%)
Faults/cpu 1  392724.3239 (  0.00%)  391558.5131 ( -0.30%)
Faults/cpu 2  319357.5074 (  0.00%)  317577.8745 ( -0.56%)
Faults/cpu 3  265703.1420 (  0.00%)  265668.3579 ( -0.01%)
Faults/cpu 4  225516.0058 (  0.00%)  225474.1508 ( -0.02%)
Faults/sec 1  392051.3043 (  0.00%)  390880.8201 ( -0.30%)
Faults/sec 2  635360.7045 (  0.00%)  631819.1117 ( -0.56%)
Faults/sec 3  725535.2889 (  0.00%)  725525.1280 ( -0.00%)
Faults/sec 4  883307.5047 (  0.00%)  884026.1721 (  0.08%)

The overhead appears to be negligible, if not noise.

               mmotm       mmotm
              unfair     fairpcp
User           39.90       39.70
System       1070.93     1069.50
Elapsed       557.47      556.86

                                 mmotm       mmotm
                                unfair     fairpcp
Page Ins                          1248         876
Page Outs                         4280        4184
Swap Ins                             0           0
Swap Outs                            0           0
Alloc DMA                            0           0
Alloc DMA32                   13098002   214383756
Alloc Normal                 279611269    78332806
Alloc Movable                        0           0
Direct pages scanned                 0           0
Kswapd pages scanned                 0           0
Kswapd pages reclaimed               0           0
Direct pages reclaimed               0           0
Kswapd efficiency                 100%        100%
Kswapd velocity                  0.000       0.000
Direct efficiency                 100%        100%
Direct velocity                  0.000       0.000
Percentage direct scans             0%          0%
Page writes by reclaim               0           0
Page writes file                     0           0
Page writes anon                     0           0
Page reclaim immediate               0           0
Page rescued immediate               0           0
Slabs scanned                        0           0
Direct inode steals                  0           0
Kswapd inode steals                  0           0
Kswapd skipped wait                  0           0
THP fault alloc                      0           0
THP collapse alloc                   0           0
THP splits                           0           0
THP fault fallback                   0           0
THP collapse fail                    0           0
Compaction stalls                    0           0
Compaction success                   0           0
Compaction failures                  0           0
Page migrate success                 0           0
Page migrate failure                 0           0
Compaction pages isolated            0           0
Compaction migrate scanned           0           0
Compaction free scanned              0           0
Compaction cost                      0           0
NUMA PTE updates                     0           0
NUMA hint faults                     0           0
NUMA hint local faults               0           0
NUMA pages migrated                  0           0
AutoNUMA cost                        0           0

The zone allocation stats show that 26% of the allocations come out of
the Normal zone and 73% out of the DMA32 zone, which is equivalent to
their proportional share of physical memory.

---

micro

               mmotm       mmotm
              unfair     fairpcp
User          650.11      533.86
System         46.16       31.49
Elapsed       903.53      349.29

                                 mmotm       mmotm
                                unfair     fairpcp
Page Ins                      27582876    11116604
Page Outs                     33959012    16573856
Swap Ins                             0           0
Swap Outs                            0           0
Alloc DMA                            0           0
Alloc DMA32                    8709355     6046277
Alloc Normal                   3188567     1959526
Alloc Movable                        0           0
Direct pages scanned           2588172      549598
Kswapd pages scanned          14803621     8451319
Kswapd pages reclaimed         6845369     3671141
Direct pages reclaimed          559581      229586
Kswapd efficiency                  46%         43%
Kswapd velocity              16384.205   24195.708
Direct efficiency                  21%         41%
Direct velocity               2864.511    1573.472
Percentage direct scans            14%          6%
Page writes by reclaim               0           0
Page writes file                     0           0
Page writes anon                     0           0
Page reclaim immediate               1           0
Page rescued immediate               0           0
Slabs scanned                     9088        7936
Direct inode steals               3910           0
Kswapd inode steals              15793          14
Kswapd skipped wait                  0           0
THP fault alloc                   6350        5482
THP collapse alloc                   1           0
THP splits                           0           0
THP fault fallback                 164        1622
THP collapse fail                    0           0
Compaction stalls                  126         324
Compaction success                  40          57
Compaction failures                 86         267
Page migrate success             16633       96349
Page migrate failure                 0           0
Compaction pages isolated        49154      305649
Compaction migrate scanned       92448      414357
Compaction free scanned         598137     4971412
Compaction cost                     18         108
NUMA PTE updates                     0           0
NUMA hint faults                     0           0
NUMA hint local faults               0           0
NUMA pages migrated                  0           0
AutoNUMA cost                        0           0

Elapsed time in comparison with user and sys time indicates much
reduced IO wait.

Interestingly, the allocations end up spreading out even in the
unpatched case, but only because kswapd seems to get stuck frequently
in a small Normal zone full of young dirty pages.

---

parallelio
                                              mmotm                       mmotm
                                             unfair                     fairpcp
Ops memcachetest-0M              28012.00 (  0.00%)          27887.00 ( -0.45%)
Ops memcachetest-1877M           22366.00 (  0.00%)          27878.00 ( 24.64%)
Ops memcachetest-6257M           17770.00 (  0.00%)          27610.00 ( 55.37%)
Ops memcachetest-10638M          17695.00 (  0.00%)          27350.00 ( 54.56%)
Ops io-duration-0M                   0.00 (  0.00%)              0.00 (  0.00%)
Ops io-duration-1877M               42.00 (  0.00%)             18.00 ( 57.14%)
Ops io-duration-6257M               97.00 (  0.00%)             57.00 ( 41.24%)
Ops io-duration-10638M             172.00 (  0.00%)            122.00 ( 29.07%)
Ops swaptotal-0M                     0.00 (  0.00%)              0.00 (  0.00%)
Ops swaptotal-1877M              93603.00 (  0.00%)              0.00 (  0.00%)
Ops swaptotal-6257M             113986.00 (  0.00%)              0.00 (  0.00%)
Ops swaptotal-10638M            178887.00 (  0.00%)              0.00 (  0.00%)
Ops swapin-0M                        0.00 (  0.00%)              0.00 (  0.00%)
Ops swapin-1877M                 20710.00 (  0.00%)              0.00 (  0.00%)
Ops swapin-6257M                 18803.00 (  0.00%)              0.00 (  0.00%)
Ops swapin-10638M                18755.00 (  0.00%)              0.00 (  0.00%)
Ops minorfaults-0M              866454.00 (  0.00%)         844880.00 (  2.49%)
Ops minorfaults-1877M           957107.00 (  0.00%)         845839.00 ( 11.63%)
Ops minorfaults-6257M           971144.00 (  0.00%)         844778.00 ( 13.01%)
Ops minorfaults-10638M         1066811.00 (  0.00%)         843628.00 ( 20.92%)
Ops majorfaults-0M                  17.00 (  0.00%)              0.00 (  0.00%)
Ops majorfaults-1877M             7636.00 (  0.00%)             37.00 ( 99.52%)
Ops majorfaults-6257M             6487.00 (  0.00%)             37.00 ( 99.43%)
Ops majorfaults-10638M            7337.00 (  0.00%)             37.00 ( 99.50%)

Mmtests reporting seems to have a bug calculating the percentage when
the numbers drop to 0, see swap activity.  Those should all be 100%.

               mmotm       mmotm
              unfair     fairpcp
User          592.67      695.15
System       3130.44     3628.81
Elapsed      7209.01     7206.46

                                 mmotm       mmotm
                                unfair     fairpcp
Page Ins                       1401120       42656
Page Outs                    163980516   153864256
Swap Ins                        316033           0
Swap Outs                      2528278           0
Alloc DMA                            0           0
Alloc DMA32                   59139091    51707843
Alloc Normal                  10013244    16310697
Alloc Movable                        0           0
Direct pages scanned            210080      235649
Kswapd pages scanned          61960450    50130023
Kswapd pages reclaimed        34998767    35769908
Direct pages reclaimed          179655      173478
Kswapd efficiency                  56%         71%
Kswapd velocity               8594.863    6956.262
Direct efficiency                  85%         73%
Direct velocity                 29.141      32.700
Percentage direct scans             0%          0%
Page writes by reclaim         3523501           1
Page writes file                995223           1
Page writes anon               2528278           0
Page reclaim immediate            2195        9188
Page rescued immediate               0           0
Slabs scanned                     2048        1536
Direct inode steals                  0           0
Kswapd inode steals                  0           0
Kswapd skipped wait                  0           0
THP fault alloc                      3           3
THP collapse alloc                4958        3026
THP splits                          28          27
THP fault fallback                   0           0
THP collapse fail                    7          72
Compaction stalls                   65          32
Compaction success                  57          14
Compaction failures                  8          18
Page migrate success             39460        9899
Page migrate failure                 0           0
Compaction pages isolated        87140       22017
Compaction migrate scanned       53494       12526
Compaction free scanned         913691      396861
Compaction cost                     42          10
NUMA PTE updates                     0           0
NUMA hint faults                     0           0
NUMA hint local faults               0           0
NUMA pages migrated                  0           0
AutoNUMA cost                        0           0

---

Patch on top of mmotm:

---
From: Johannes Weiner <hannes@cmpxchg.org>
Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching

Avoid dirtying the same cache line with every single page allocation
by making the fair per-zone allocation batch a vmstat item, which will
turn it into batched percpu counters on SMP.

Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
---
 include/linux/mmzone.h |  2 +-
 mm/page_alloc.c        | 21 ++++++++++++---------
 mm/vmstat.c            |  1 +
 3 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index dcad2ab..ac1ea79 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -105,6 +105,7 @@ struct zone_padding {
 enum zone_stat_item {
 	/* First 128 byte cacheline (assuming 64 bit words) */
 	NR_FREE_PAGES,
+	NR_ALLOC_BATCH,
 	NR_LRU_BASE,
 	NR_INACTIVE_ANON = NR_LRU_BASE, /* must match order of LRU_[IN]ACTIVE */
 	NR_ACTIVE_ANON,		/*  "     "     "   "       "         */
@@ -352,7 +353,6 @@ struct zone {
 	 * free areas of different sizes
 	 */
 	spinlock_t		lock;
-	int			alloc_batch;
 	int                     all_unreclaimable; /* All pages pinned */
 #if defined CONFIG_COMPACTION || defined CONFIG_CMA
 	/* Set to true when the PG_migrate_skip bits should be cleared */
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 0d7e9e9..6a95d39 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1554,6 +1554,7 @@ again:
 					  get_pageblock_migratetype(page));
 	}
 
+	__mod_zone_page_state(zone, NR_ALLOC_BATCH, -(1 << order));
 	__count_zone_vm_events(PGALLOC, zone, 1 << order);
 	zone_statistics(preferred_zone, zone, gfp_flags);
 	local_irq_restore(flags);
@@ -1927,7 +1928,7 @@ zonelist_scan:
 		 * fairness round-robin cycle of this zonelist.
 		 */
 		if (alloc_flags & ALLOC_WMARK_LOW) {
-			if (zone->alloc_batch <= 0)
+			if (zone_page_state(zone, NR_ALLOC_BATCH) <= 0)
 				continue;
 			if (zone_reclaim_mode &&
 			    !zone_local(preferred_zone, zone))
@@ -2039,8 +2040,7 @@ this_zone_full:
 		goto zonelist_scan;
 	}
 
-	if (page) {
-		zone->alloc_batch -= 1U << order;
+	if (page)
 		/*
 		 * page->pfmemalloc is set when ALLOC_NO_WATERMARKS was
 		 * necessary to allocate the page. The expectation is
@@ -2049,7 +2049,6 @@ this_zone_full:
 		 * for !PFMEMALLOC purposes.
 		 */
 		page->pfmemalloc = !!(alloc_flags & ALLOC_NO_WATERMARKS);
-	}
 
 	return page;
 }
@@ -2418,8 +2417,10 @@ static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
 		 */
 		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
 			continue;
-		zone->alloc_batch = high_wmark_pages(zone) -
-			low_wmark_pages(zone);
+		mod_zone_page_state(zone, NR_ALLOC_BATCH,
+				    high_wmark_pages(zone) -
+				    low_wmark_pages(zone) -
+				    zone_page_state(zone, NR_ALLOC_BATCH));
 	}
 }
 
@@ -4827,7 +4828,7 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
 		zone->zone_pgdat = pgdat;
 
 		/* For bootup, initialized properly in watermark setup */
-		zone->alloc_batch = zone->managed_pages;
+		mod_zone_page_state(zone, NR_ALLOC_BATCH, zone->managed_pages);
 
 		zone_pcp_init(zone);
 		lruvec_init(&zone->lruvec);
@@ -5606,8 +5607,10 @@ static void __setup_per_zone_wmarks(void)
 		zone->watermark[WMARK_LOW]  = min_wmark_pages(zone) + (tmp >> 2);
 		zone->watermark[WMARK_HIGH] = min_wmark_pages(zone) + (tmp >> 1);
 
-		zone->alloc_batch = high_wmark_pages(zone) -
-			low_wmark_pages(zone);
+		__mod_zone_page_state(zone, NR_ALLOC_BATCH,
+				      high_wmark_pages(zone) -
+				      low_wmark_pages(zone) -
+				      zone_page_state(zone, NR_ALLOC_BATCH));
 
 		setup_zone_migrate_reserve(zone);
 		spin_unlock_irqrestore(&zone->lock, flags);
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 87228c5..ba9e46b 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -704,6 +704,7 @@ static void walk_zones_in_node(struct seq_file *m, pg_data_t *pgdat,
 const char * const vmstat_text[] = {
 	/* Zoned VM counters */
 	"nr_free_pages",
+	"nr_alloc_batch",
 	"nr_inactive_anon",
 	"nr_active_anon",
 	"nr_inactive_file",
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-08  4:16         ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-08  4:16 UTC (permalink / raw)
  To: Mel Gorman
  Cc: Andrew Morton, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
> On Wed, Aug 07, 2013 at 03:58:28PM +0100, Mel Gorman wrote:
> > On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> > > @@ -352,6 +352,7 @@ struct zone {
> > >  	 * free areas of different sizes
> > >  	 */
> > >  	spinlock_t		lock;
> > > +	int			alloc_batch;
> > >  	int                     all_unreclaimable; /* All pages pinned */
> > >  #if defined CONFIG_COMPACTION || defined CONFIG_CMA
> > >  	/* Set to true when the PG_migrate_skip bits should be cleared */
> > 
> > This adds a dirty cache line that is updated on every allocation even if
> > it's from the per-cpu allocator. I am concerned that this will introduce
> > noticable overhead in the allocator paths on large machines running
> > allocator intensive workloads.
> > 
> > Would it be possible to move it into the per-cpu pageset? I understand
> > that hte round-robin nature will then depend on what CPU is running and
> > the performance characterisics will be different. There might even be an
> > adverse workload that uses all the batches from all available CPUs until
> > it is essentially the same problem but that would be a very worst case.
> > I would hope that in general it would work without adding a big source of
> > dirty cache line bouncing in the middle of the allocator.
> 
> Rik made the same suggestion.  The per-cpu error is one thing, the
> problem is if the allocating task and kswapd run on the same CPU and
> bypass the round-robin allocator completely, at which point we are
> back to square one.  We'd have to reduce the per-cpu lists from a pool
> to strict batching of frees and allocs without reuse in between.  That
> might be doable, I'll give this another look.

I found a way.  It's still in the fast path, but I'm using vmstat
percpu counters and can stick the update inside the same irq-safe
section that does the other statistic updates.

On a two socket system with a small Normal zone, the results are as
follows (unfair: mmotm without the fairness allocator, fairpcp: the
fair allocator + the vmstat optimization):

---

pft
                             mmotm                 mmotm
                            unfair               fairpcp
User       1       0.0258 (  0.00%)       0.0254 (  1.40%)
User       2       0.0264 (  0.00%)       0.0263 (  0.21%)
User       3       0.0271 (  0.00%)       0.0277 ( -2.36%)
User       4       0.0287 (  0.00%)       0.0280 (  2.33%)
System     1       0.4904 (  0.00%)       0.4919 ( -0.29%)
System     2       0.6141 (  0.00%)       0.6183 ( -0.68%)
System     3       0.7346 (  0.00%)       0.7349 ( -0.04%)
System     4       0.8700 (  0.00%)       0.8704 ( -0.05%)
Elapsed    1       0.5164 (  0.00%)       0.5182 ( -0.35%)
Elapsed    2       0.3213 (  0.00%)       0.3235 ( -0.67%)
Elapsed    3       0.2800 (  0.00%)       0.2800 (  0.00%)
Elapsed    4       0.2304 (  0.00%)       0.2303 (  0.01%)
Faults/cpu 1  392724.3239 (  0.00%)  391558.5131 ( -0.30%)
Faults/cpu 2  319357.5074 (  0.00%)  317577.8745 ( -0.56%)
Faults/cpu 3  265703.1420 (  0.00%)  265668.3579 ( -0.01%)
Faults/cpu 4  225516.0058 (  0.00%)  225474.1508 ( -0.02%)
Faults/sec 1  392051.3043 (  0.00%)  390880.8201 ( -0.30%)
Faults/sec 2  635360.7045 (  0.00%)  631819.1117 ( -0.56%)
Faults/sec 3  725535.2889 (  0.00%)  725525.1280 ( -0.00%)
Faults/sec 4  883307.5047 (  0.00%)  884026.1721 (  0.08%)

The overhead appears to be negligible, if not noise.

               mmotm       mmotm
              unfair     fairpcp
User           39.90       39.70
System       1070.93     1069.50
Elapsed       557.47      556.86

                                 mmotm       mmotm
                                unfair     fairpcp
Page Ins                          1248         876
Page Outs                         4280        4184
Swap Ins                             0           0
Swap Outs                            0           0
Alloc DMA                            0           0
Alloc DMA32                   13098002   214383756
Alloc Normal                 279611269    78332806
Alloc Movable                        0           0
Direct pages scanned                 0           0
Kswapd pages scanned                 0           0
Kswapd pages reclaimed               0           0
Direct pages reclaimed               0           0
Kswapd efficiency                 100%        100%
Kswapd velocity                  0.000       0.000
Direct efficiency                 100%        100%
Direct velocity                  0.000       0.000
Percentage direct scans             0%          0%
Page writes by reclaim               0           0
Page writes file                     0           0
Page writes anon                     0           0
Page reclaim immediate               0           0
Page rescued immediate               0           0
Slabs scanned                        0           0
Direct inode steals                  0           0
Kswapd inode steals                  0           0
Kswapd skipped wait                  0           0
THP fault alloc                      0           0
THP collapse alloc                   0           0
THP splits                           0           0
THP fault fallback                   0           0
THP collapse fail                    0           0
Compaction stalls                    0           0
Compaction success                   0           0
Compaction failures                  0           0
Page migrate success                 0           0
Page migrate failure                 0           0
Compaction pages isolated            0           0
Compaction migrate scanned           0           0
Compaction free scanned              0           0
Compaction cost                      0           0
NUMA PTE updates                     0           0
NUMA hint faults                     0           0
NUMA hint local faults               0           0
NUMA pages migrated                  0           0
AutoNUMA cost                        0           0

The zone allocation stats show that 26% of the allocations come out of
the Normal zone and 73% out of the DMA32 zone, which is equivalent to
their proportional share of physical memory.

---

micro

               mmotm       mmotm
              unfair     fairpcp
User          650.11      533.86
System         46.16       31.49
Elapsed       903.53      349.29

                                 mmotm       mmotm
                                unfair     fairpcp
Page Ins                      27582876    11116604
Page Outs                     33959012    16573856
Swap Ins                             0           0
Swap Outs                            0           0
Alloc DMA                            0           0
Alloc DMA32                    8709355     6046277
Alloc Normal                   3188567     1959526
Alloc Movable                        0           0
Direct pages scanned           2588172      549598
Kswapd pages scanned          14803621     8451319
Kswapd pages reclaimed         6845369     3671141
Direct pages reclaimed          559581      229586
Kswapd efficiency                  46%         43%
Kswapd velocity              16384.205   24195.708
Direct efficiency                  21%         41%
Direct velocity               2864.511    1573.472
Percentage direct scans            14%          6%
Page writes by reclaim               0           0
Page writes file                     0           0
Page writes anon                     0           0
Page reclaim immediate               1           0
Page rescued immediate               0           0
Slabs scanned                     9088        7936
Direct inode steals               3910           0
Kswapd inode steals              15793          14
Kswapd skipped wait                  0           0
THP fault alloc                   6350        5482
THP collapse alloc                   1           0
THP splits                           0           0
THP fault fallback                 164        1622
THP collapse fail                    0           0
Compaction stalls                  126         324
Compaction success                  40          57
Compaction failures                 86         267
Page migrate success             16633       96349
Page migrate failure                 0           0
Compaction pages isolated        49154      305649
Compaction migrate scanned       92448      414357
Compaction free scanned         598137     4971412
Compaction cost                     18         108
NUMA PTE updates                     0           0
NUMA hint faults                     0           0
NUMA hint local faults               0           0
NUMA pages migrated                  0           0
AutoNUMA cost                        0           0

Elapsed time in comparison with user and sys time indicates much
reduced IO wait.

Interestingly, the allocations end up spreading out even in the
unpatched case, but only because kswapd seems to get stuck frequently
in a small Normal zone full of young dirty pages.

---

parallelio
                                              mmotm                       mmotm
                                             unfair                     fairpcp
Ops memcachetest-0M              28012.00 (  0.00%)          27887.00 ( -0.45%)
Ops memcachetest-1877M           22366.00 (  0.00%)          27878.00 ( 24.64%)
Ops memcachetest-6257M           17770.00 (  0.00%)          27610.00 ( 55.37%)
Ops memcachetest-10638M          17695.00 (  0.00%)          27350.00 ( 54.56%)
Ops io-duration-0M                   0.00 (  0.00%)              0.00 (  0.00%)
Ops io-duration-1877M               42.00 (  0.00%)             18.00 ( 57.14%)
Ops io-duration-6257M               97.00 (  0.00%)             57.00 ( 41.24%)
Ops io-duration-10638M             172.00 (  0.00%)            122.00 ( 29.07%)
Ops swaptotal-0M                     0.00 (  0.00%)              0.00 (  0.00%)
Ops swaptotal-1877M              93603.00 (  0.00%)              0.00 (  0.00%)
Ops swaptotal-6257M             113986.00 (  0.00%)              0.00 (  0.00%)
Ops swaptotal-10638M            178887.00 (  0.00%)              0.00 (  0.00%)
Ops swapin-0M                        0.00 (  0.00%)              0.00 (  0.00%)
Ops swapin-1877M                 20710.00 (  0.00%)              0.00 (  0.00%)
Ops swapin-6257M                 18803.00 (  0.00%)              0.00 (  0.00%)
Ops swapin-10638M                18755.00 (  0.00%)              0.00 (  0.00%)
Ops minorfaults-0M              866454.00 (  0.00%)         844880.00 (  2.49%)
Ops minorfaults-1877M           957107.00 (  0.00%)         845839.00 ( 11.63%)
Ops minorfaults-6257M           971144.00 (  0.00%)         844778.00 ( 13.01%)
Ops minorfaults-10638M         1066811.00 (  0.00%)         843628.00 ( 20.92%)
Ops majorfaults-0M                  17.00 (  0.00%)              0.00 (  0.00%)
Ops majorfaults-1877M             7636.00 (  0.00%)             37.00 ( 99.52%)
Ops majorfaults-6257M             6487.00 (  0.00%)             37.00 ( 99.43%)
Ops majorfaults-10638M            7337.00 (  0.00%)             37.00 ( 99.50%)

Mmtests reporting seems to have a bug calculating the percentage when
the numbers drop to 0, see swap activity.  Those should all be 100%.

               mmotm       mmotm
              unfair     fairpcp
User          592.67      695.15
System       3130.44     3628.81
Elapsed      7209.01     7206.46

                                 mmotm       mmotm
                                unfair     fairpcp
Page Ins                       1401120       42656
Page Outs                    163980516   153864256
Swap Ins                        316033           0
Swap Outs                      2528278           0
Alloc DMA                            0           0
Alloc DMA32                   59139091    51707843
Alloc Normal                  10013244    16310697
Alloc Movable                        0           0
Direct pages scanned            210080      235649
Kswapd pages scanned          61960450    50130023
Kswapd pages reclaimed        34998767    35769908
Direct pages reclaimed          179655      173478
Kswapd efficiency                  56%         71%
Kswapd velocity               8594.863    6956.262
Direct efficiency                  85%         73%
Direct velocity                 29.141      32.700
Percentage direct scans             0%          0%
Page writes by reclaim         3523501           1
Page writes file                995223           1
Page writes anon               2528278           0
Page reclaim immediate            2195        9188
Page rescued immediate               0           0
Slabs scanned                     2048        1536
Direct inode steals                  0           0
Kswapd inode steals                  0           0
Kswapd skipped wait                  0           0
THP fault alloc                      3           3
THP collapse alloc                4958        3026
THP splits                          28          27
THP fault fallback                   0           0
THP collapse fail                    7          72
Compaction stalls                   65          32
Compaction success                  57          14
Compaction failures                  8          18
Page migrate success             39460        9899
Page migrate failure                 0           0
Compaction pages isolated        87140       22017
Compaction migrate scanned       53494       12526
Compaction free scanned         913691      396861
Compaction cost                     42          10
NUMA PTE updates                     0           0
NUMA hint faults                     0           0
NUMA hint local faults               0           0
NUMA pages migrated                  0           0
AutoNUMA cost                        0           0

---

Patch on top of mmotm:

---
From: Johannes Weiner <hannes@cmpxchg.org>
Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching

Avoid dirtying the same cache line with every single page allocation
by making the fair per-zone allocation batch a vmstat item, which will
turn it into batched percpu counters on SMP.

Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
---
 include/linux/mmzone.h |  2 +-
 mm/page_alloc.c        | 21 ++++++++++++---------
 mm/vmstat.c            |  1 +
 3 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index dcad2ab..ac1ea79 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -105,6 +105,7 @@ struct zone_padding {
 enum zone_stat_item {
 	/* First 128 byte cacheline (assuming 64 bit words) */
 	NR_FREE_PAGES,
+	NR_ALLOC_BATCH,
 	NR_LRU_BASE,
 	NR_INACTIVE_ANON = NR_LRU_BASE, /* must match order of LRU_[IN]ACTIVE */
 	NR_ACTIVE_ANON,		/*  "     "     "   "       "         */
@@ -352,7 +353,6 @@ struct zone {
 	 * free areas of different sizes
 	 */
 	spinlock_t		lock;
-	int			alloc_batch;
 	int                     all_unreclaimable; /* All pages pinned */
 #if defined CONFIG_COMPACTION || defined CONFIG_CMA
 	/* Set to true when the PG_migrate_skip bits should be cleared */
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 0d7e9e9..6a95d39 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1554,6 +1554,7 @@ again:
 					  get_pageblock_migratetype(page));
 	}
 
+	__mod_zone_page_state(zone, NR_ALLOC_BATCH, -(1 << order));
 	__count_zone_vm_events(PGALLOC, zone, 1 << order);
 	zone_statistics(preferred_zone, zone, gfp_flags);
 	local_irq_restore(flags);
@@ -1927,7 +1928,7 @@ zonelist_scan:
 		 * fairness round-robin cycle of this zonelist.
 		 */
 		if (alloc_flags & ALLOC_WMARK_LOW) {
-			if (zone->alloc_batch <= 0)
+			if (zone_page_state(zone, NR_ALLOC_BATCH) <= 0)
 				continue;
 			if (zone_reclaim_mode &&
 			    !zone_local(preferred_zone, zone))
@@ -2039,8 +2040,7 @@ this_zone_full:
 		goto zonelist_scan;
 	}
 
-	if (page) {
-		zone->alloc_batch -= 1U << order;
+	if (page)
 		/*
 		 * page->pfmemalloc is set when ALLOC_NO_WATERMARKS was
 		 * necessary to allocate the page. The expectation is
@@ -2049,7 +2049,6 @@ this_zone_full:
 		 * for !PFMEMALLOC purposes.
 		 */
 		page->pfmemalloc = !!(alloc_flags & ALLOC_NO_WATERMARKS);
-	}
 
 	return page;
 }
@@ -2418,8 +2417,10 @@ static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
 		 */
 		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
 			continue;
-		zone->alloc_batch = high_wmark_pages(zone) -
-			low_wmark_pages(zone);
+		mod_zone_page_state(zone, NR_ALLOC_BATCH,
+				    high_wmark_pages(zone) -
+				    low_wmark_pages(zone) -
+				    zone_page_state(zone, NR_ALLOC_BATCH));
 	}
 }
 
@@ -4827,7 +4828,7 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
 		zone->zone_pgdat = pgdat;
 
 		/* For bootup, initialized properly in watermark setup */
-		zone->alloc_batch = zone->managed_pages;
+		mod_zone_page_state(zone, NR_ALLOC_BATCH, zone->managed_pages);
 
 		zone_pcp_init(zone);
 		lruvec_init(&zone->lruvec);
@@ -5606,8 +5607,10 @@ static void __setup_per_zone_wmarks(void)
 		zone->watermark[WMARK_LOW]  = min_wmark_pages(zone) + (tmp >> 2);
 		zone->watermark[WMARK_HIGH] = min_wmark_pages(zone) + (tmp >> 1);
 
-		zone->alloc_batch = high_wmark_pages(zone) -
-			low_wmark_pages(zone);
+		__mod_zone_page_state(zone, NR_ALLOC_BATCH,
+				      high_wmark_pages(zone) -
+				      low_wmark_pages(zone) -
+				      zone_page_state(zone, NR_ALLOC_BATCH));
 
 		setup_zone_migrate_reserve(zone);
 		spin_unlock_irqrestore(&zone->lock, flags);
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 87228c5..ba9e46b 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -704,6 +704,7 @@ static void walk_zones_in_node(struct seq_file *m, pg_data_t *pgdat,
 const char * const vmstat_text[] = {
 	/* Zoned VM counters */
 	"nr_free_pages",
+	"nr_alloc_batch",
 	"nr_inactive_anon",
 	"nr_active_anon",
 	"nr_inactive_file",
-- 
1.8.3.2

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply related	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-08  4:16         ` Johannes Weiner
@ 2013-08-08  9:21           ` Mel Gorman
  -1 siblings, 0 replies; 82+ messages in thread
From: Mel Gorman @ 2013-08-08  9:21 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Thu, Aug 08, 2013 at 12:16:23AM -0400, Johannes Weiner wrote:
> On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
> > On Wed, Aug 07, 2013 at 03:58:28PM +0100, Mel Gorman wrote:
> > > On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> > > > @@ -352,6 +352,7 @@ struct zone {
> > > >  	 * free areas of different sizes
> > > >  	 */
> > > >  	spinlock_t		lock;
> > > > +	int			alloc_batch;
> > > >  	int                     all_unreclaimable; /* All pages pinned */
> > > >  #if defined CONFIG_COMPACTION || defined CONFIG_CMA
> > > >  	/* Set to true when the PG_migrate_skip bits should be cleared */
> > > 
> > > This adds a dirty cache line that is updated on every allocation even if
> > > it's from the per-cpu allocator. I am concerned that this will introduce
> > > noticable overhead in the allocator paths on large machines running
> > > allocator intensive workloads.
> > > 
> > > Would it be possible to move it into the per-cpu pageset? I understand
> > > that hte round-robin nature will then depend on what CPU is running and
> > > the performance characterisics will be different. There might even be an
> > > adverse workload that uses all the batches from all available CPUs until
> > > it is essentially the same problem but that would be a very worst case.
> > > I would hope that in general it would work without adding a big source of
> > > dirty cache line bouncing in the middle of the allocator.
> > 
> > Rik made the same suggestion.  The per-cpu error is one thing, the
> > problem is if the allocating task and kswapd run on the same CPU and
> > bypass the round-robin allocator completely, at which point we are
> > back to square one.  We'd have to reduce the per-cpu lists from a pool
> > to strict batching of frees and allocs without reuse in between.  That
> > might be doable, I'll give this another look.
> 
> I found a way.  It's still in the fast path, but I'm using vmstat
> percpu counters and can stick the update inside the same irq-safe
> section that does the other statistic updates.
> 

Ok, there will be some drift as those counters are only updated
periodically or if they overflow. Offhand I think your worst case is
being off by (nr_cpu_in_node * 127 - default_batch) but I doubt it'll be
noticable.

> On a two socket system with a small Normal zone, the results are as
> follows (unfair: mmotm without the fairness allocator, fairpcp: the
> fair allocator + the vmstat optimization):
> 
> ---
> 
> pft
>                              mmotm                 mmotm
>                             unfair               fairpcp
> User       1       0.0258 (  0.00%)       0.0254 (  1.40%)
> User       2       0.0264 (  0.00%)       0.0263 (  0.21%)
> User       3       0.0271 (  0.00%)       0.0277 ( -2.36%)
> User       4       0.0287 (  0.00%)       0.0280 (  2.33%)
> System     1       0.4904 (  0.00%)       0.4919 ( -0.29%)
> System     2       0.6141 (  0.00%)       0.6183 ( -0.68%)
> System     3       0.7346 (  0.00%)       0.7349 ( -0.04%)
> System     4       0.8700 (  0.00%)       0.8704 ( -0.05%)
> Elapsed    1       0.5164 (  0.00%)       0.5182 ( -0.35%)
> Elapsed    2       0.3213 (  0.00%)       0.3235 ( -0.67%)
> Elapsed    3       0.2800 (  0.00%)       0.2800 (  0.00%)
> Elapsed    4       0.2304 (  0.00%)       0.2303 (  0.01%)
> Faults/cpu 1  392724.3239 (  0.00%)  391558.5131 ( -0.30%)
> Faults/cpu 2  319357.5074 (  0.00%)  317577.8745 ( -0.56%)
> Faults/cpu 3  265703.1420 (  0.00%)  265668.3579 ( -0.01%)
> Faults/cpu 4  225516.0058 (  0.00%)  225474.1508 ( -0.02%)
> Faults/sec 1  392051.3043 (  0.00%)  390880.8201 ( -0.30%)
> Faults/sec 2  635360.7045 (  0.00%)  631819.1117 ( -0.56%)
> Faults/sec 3  725535.2889 (  0.00%)  725525.1280 ( -0.00%)
> Faults/sec 4  883307.5047 (  0.00%)  884026.1721 (  0.08%)
> 
> The overhead appears to be negligible, if not noise.
> 

Certainly small enough to not care considering what you're balancing
it against. Mind you, I do note that 4 clients is almost certainly not
enought to load a 2-socket machine. As the test is not memory intensive I
suspect that this test ran entirely within a single socket that would have
avoided the worst costs of dirty cache line bouncing anyway. As the number
of clients grow I predict that the results will become more variable as
it'll depend on scheduling.

>                mmotm       mmotm
>               unfair     fairpcp
> User           39.90       39.70
> System       1070.93     1069.50
> Elapsed       557.47      556.86
> 

And there is nothing suspicious in the system CPU time.

> <SNIP
>
> parallelio
>                                               mmotm                       mmotm
>                                              unfair                     fairpcp
> Ops memcachetest-0M              28012.00 (  0.00%)          27887.00 ( -0.45%)
> Ops memcachetest-1877M           22366.00 (  0.00%)          27878.00 ( 24.64%)
> Ops memcachetest-6257M           17770.00 (  0.00%)          27610.00 ( 55.37%)
> Ops memcachetest-10638M          17695.00 (  0.00%)          27350.00 ( 54.56%)
> Ops io-duration-0M                   0.00 (  0.00%)              0.00 (  0.00%)
> Ops io-duration-1877M               42.00 (  0.00%)             18.00 ( 57.14%)
> Ops io-duration-6257M               97.00 (  0.00%)             57.00 ( 41.24%)
> Ops io-duration-10638M             172.00 (  0.00%)            122.00 ( 29.07%)
> Ops swaptotal-0M                     0.00 (  0.00%)              0.00 (  0.00%)
> Ops swaptotal-1877M              93603.00 (  0.00%)              0.00 (  0.00%)
> Ops swaptotal-6257M             113986.00 (  0.00%)              0.00 (  0.00%)
> Ops swaptotal-10638M            178887.00 (  0.00%)              0.00 (  0.00%)
> Ops swapin-0M                        0.00 (  0.00%)              0.00 (  0.00%)
> Ops swapin-1877M                 20710.00 (  0.00%)              0.00 (  0.00%)
> Ops swapin-6257M                 18803.00 (  0.00%)              0.00 (  0.00%)
> Ops swapin-10638M                18755.00 (  0.00%)              0.00 (  0.00%)
> Ops minorfaults-0M              866454.00 (  0.00%)         844880.00 (  2.49%)
> Ops minorfaults-1877M           957107.00 (  0.00%)         845839.00 ( 11.63%)
> Ops minorfaults-6257M           971144.00 (  0.00%)         844778.00 ( 13.01%)
> Ops minorfaults-10638M         1066811.00 (  0.00%)         843628.00 ( 20.92%)
> Ops majorfaults-0M                  17.00 (  0.00%)              0.00 (  0.00%)
> Ops majorfaults-1877M             7636.00 (  0.00%)             37.00 ( 99.52%)
> Ops majorfaults-6257M             6487.00 (  0.00%)             37.00 ( 99.43%)
> Ops majorfaults-10638M            7337.00 (  0.00%)             37.00 ( 99.50%)
> 
> Mmtests reporting seems to have a bug calculating the percentage when
> the numbers drop to 0, see swap activity.  Those should all be 100%.
> 

Yep. I added a note to the TODO list which is now going sideways on the
sheet. Really need to knock a few items off it.

Still, they key takeaway is that it's no longer swapping and with swapins
in particular that is a big deal. I think it's interesting to note that
major faults are also very different, higher than what can be accounted
for by just the swapping. I wonder if the shared libraries and executable
binaries also getting thrown out and paged back in.

>                mmotm       mmotm
>               unfair     fairpcp
> User          592.67      695.15
> System       3130.44     3628.81
> Elapsed      7209.01     7206.46
> 

I'm not concerned about the high user time here because it's due to not
swapping (I guess). The higher system CPU is interesting and while I expect
it's just because the process is busy I must find the time to see *where*
that time is spent for this workload some day.

>                                  mmotm       mmotm
>                                 unfair     fairpcp
> Page Ins                       1401120       42656
> Page Outs                    163980516   153864256
> Swap Ins                        316033           0
> Swap Outs                      2528278           0
> Alloc DMA                            0           0
> Alloc DMA32                   59139091    51707843
> Alloc Normal                  10013244    16310697
> Alloc Movable                        0           0
> Direct pages scanned            210080      235649
> Kswapd pages scanned          61960450    50130023
> Kswapd pages reclaimed        34998767    35769908
> Direct pages reclaimed          179655      173478
> Kswapd efficiency                  56%         71%
> Kswapd velocity               8594.863    6956.262
> Direct efficiency                  85%         73%
> Direct velocity                 29.141      32.700
> Percentage direct scans             0%          0%
> Page writes by reclaim         3523501           1
> Page writes file                995223           1
> Page writes anon               2528278           0
> Page reclaim immediate            2195        9188
> Page rescued immediate               0           0
> Slabs scanned                     2048        1536
> Direct inode steals                  0           0
> Kswapd inode steals                  0           0
> Kswapd skipped wait                  0           0
> THP fault alloc                      3           3
> THP collapse alloc                4958        3026
> THP splits                          28          27
> THP fault fallback                   0           0
> THP collapse fail                    7          72
> Compaction stalls                   65          32
> Compaction success                  57          14
> Compaction failures                  8          18
> Page migrate success             39460        9899
> Page migrate failure                 0           0
> Compaction pages isolated        87140       22017
> Compaction migrate scanned       53494       12526
> Compaction free scanned         913691      396861
> Compaction cost                     42          10
> NUMA PTE updates                     0           0
> NUMA hint faults                     0           0
> NUMA hint local faults               0           0
> NUMA pages migrated                  0           0
> AutoNUMA cost                        0           0
> 

btw, mmtests has another bug and that "Page Ins" and "Page Outs" figures
are completely bogus. They are replaced with simply Major and Minor
faults in my current git tree. Otherwise, note the decrease in kswapd
velocity. That's nice but nowhere near as nice as the elimination of page
writes from reclaim context!

> ---
> 
> Patch on top of mmotm:
> 
> ---
> From: Johannes Weiner <hannes@cmpxchg.org>
> Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
> 
> Avoid dirtying the same cache line with every single page allocation
> by making the fair per-zone allocation batch a vmstat item, which will
> turn it into batched percpu counters on SMP.
> 
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>

With this patch on top;

Acked-by: Mel Gorman <mgorman@suse.de>

Thanks very much Johannes, this is a great result. One note below

> @@ -2418,8 +2417,10 @@ static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
>  		 */
>  		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
>  			continue;
> -		zone->alloc_batch = high_wmark_pages(zone) -
> -			low_wmark_pages(zone);
> +		mod_zone_page_state(zone, NR_ALLOC_BATCH,
> +				    high_wmark_pages(zone) -
> +				    low_wmark_pages(zone) -
> +				    zone_page_state(zone, NR_ALLOC_BATCH));
>  	}
>  }
>  

Because of drift this is not exactly equivalent. The batch value will not
be reinitialised but instead adjusted by the delta but it's close enough
to not matter. Due to the size of the delta it will always spill over and
update the global counter so while the decrements from the alloc fast
paths are light, the reset is not. I see no way around this but if there
is still some noticable overhead then I bet this is where it is. It's
still a *LOT* better than what was there before and I think the cost is
justified this time.

-- 
Mel Gorman
SUSE Labs

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-08  9:21           ` Mel Gorman
  0 siblings, 0 replies; 82+ messages in thread
From: Mel Gorman @ 2013-08-08  9:21 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrew Morton, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On Thu, Aug 08, 2013 at 12:16:23AM -0400, Johannes Weiner wrote:
> On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
> > On Wed, Aug 07, 2013 at 03:58:28PM +0100, Mel Gorman wrote:
> > > On Fri, Aug 02, 2013 at 11:37:26AM -0400, Johannes Weiner wrote:
> > > > @@ -352,6 +352,7 @@ struct zone {
> > > >  	 * free areas of different sizes
> > > >  	 */
> > > >  	spinlock_t		lock;
> > > > +	int			alloc_batch;
> > > >  	int                     all_unreclaimable; /* All pages pinned */
> > > >  #if defined CONFIG_COMPACTION || defined CONFIG_CMA
> > > >  	/* Set to true when the PG_migrate_skip bits should be cleared */
> > > 
> > > This adds a dirty cache line that is updated on every allocation even if
> > > it's from the per-cpu allocator. I am concerned that this will introduce
> > > noticable overhead in the allocator paths on large machines running
> > > allocator intensive workloads.
> > > 
> > > Would it be possible to move it into the per-cpu pageset? I understand
> > > that hte round-robin nature will then depend on what CPU is running and
> > > the performance characterisics will be different. There might even be an
> > > adverse workload that uses all the batches from all available CPUs until
> > > it is essentially the same problem but that would be a very worst case.
> > > I would hope that in general it would work without adding a big source of
> > > dirty cache line bouncing in the middle of the allocator.
> > 
> > Rik made the same suggestion.  The per-cpu error is one thing, the
> > problem is if the allocating task and kswapd run on the same CPU and
> > bypass the round-robin allocator completely, at which point we are
> > back to square one.  We'd have to reduce the per-cpu lists from a pool
> > to strict batching of frees and allocs without reuse in between.  That
> > might be doable, I'll give this another look.
> 
> I found a way.  It's still in the fast path, but I'm using vmstat
> percpu counters and can stick the update inside the same irq-safe
> section that does the other statistic updates.
> 

Ok, there will be some drift as those counters are only updated
periodically or if they overflow. Offhand I think your worst case is
being off by (nr_cpu_in_node * 127 - default_batch) but I doubt it'll be
noticable.

> On a two socket system with a small Normal zone, the results are as
> follows (unfair: mmotm without the fairness allocator, fairpcp: the
> fair allocator + the vmstat optimization):
> 
> ---
> 
> pft
>                              mmotm                 mmotm
>                             unfair               fairpcp
> User       1       0.0258 (  0.00%)       0.0254 (  1.40%)
> User       2       0.0264 (  0.00%)       0.0263 (  0.21%)
> User       3       0.0271 (  0.00%)       0.0277 ( -2.36%)
> User       4       0.0287 (  0.00%)       0.0280 (  2.33%)
> System     1       0.4904 (  0.00%)       0.4919 ( -0.29%)
> System     2       0.6141 (  0.00%)       0.6183 ( -0.68%)
> System     3       0.7346 (  0.00%)       0.7349 ( -0.04%)
> System     4       0.8700 (  0.00%)       0.8704 ( -0.05%)
> Elapsed    1       0.5164 (  0.00%)       0.5182 ( -0.35%)
> Elapsed    2       0.3213 (  0.00%)       0.3235 ( -0.67%)
> Elapsed    3       0.2800 (  0.00%)       0.2800 (  0.00%)
> Elapsed    4       0.2304 (  0.00%)       0.2303 (  0.01%)
> Faults/cpu 1  392724.3239 (  0.00%)  391558.5131 ( -0.30%)
> Faults/cpu 2  319357.5074 (  0.00%)  317577.8745 ( -0.56%)
> Faults/cpu 3  265703.1420 (  0.00%)  265668.3579 ( -0.01%)
> Faults/cpu 4  225516.0058 (  0.00%)  225474.1508 ( -0.02%)
> Faults/sec 1  392051.3043 (  0.00%)  390880.8201 ( -0.30%)
> Faults/sec 2  635360.7045 (  0.00%)  631819.1117 ( -0.56%)
> Faults/sec 3  725535.2889 (  0.00%)  725525.1280 ( -0.00%)
> Faults/sec 4  883307.5047 (  0.00%)  884026.1721 (  0.08%)
> 
> The overhead appears to be negligible, if not noise.
> 

Certainly small enough to not care considering what you're balancing
it against. Mind you, I do note that 4 clients is almost certainly not
enought to load a 2-socket machine. As the test is not memory intensive I
suspect that this test ran entirely within a single socket that would have
avoided the worst costs of dirty cache line bouncing anyway. As the number
of clients grow I predict that the results will become more variable as
it'll depend on scheduling.

>                mmotm       mmotm
>               unfair     fairpcp
> User           39.90       39.70
> System       1070.93     1069.50
> Elapsed       557.47      556.86
> 

And there is nothing suspicious in the system CPU time.

> <SNIP
>
> parallelio
>                                               mmotm                       mmotm
>                                              unfair                     fairpcp
> Ops memcachetest-0M              28012.00 (  0.00%)          27887.00 ( -0.45%)
> Ops memcachetest-1877M           22366.00 (  0.00%)          27878.00 ( 24.64%)
> Ops memcachetest-6257M           17770.00 (  0.00%)          27610.00 ( 55.37%)
> Ops memcachetest-10638M          17695.00 (  0.00%)          27350.00 ( 54.56%)
> Ops io-duration-0M                   0.00 (  0.00%)              0.00 (  0.00%)
> Ops io-duration-1877M               42.00 (  0.00%)             18.00 ( 57.14%)
> Ops io-duration-6257M               97.00 (  0.00%)             57.00 ( 41.24%)
> Ops io-duration-10638M             172.00 (  0.00%)            122.00 ( 29.07%)
> Ops swaptotal-0M                     0.00 (  0.00%)              0.00 (  0.00%)
> Ops swaptotal-1877M              93603.00 (  0.00%)              0.00 (  0.00%)
> Ops swaptotal-6257M             113986.00 (  0.00%)              0.00 (  0.00%)
> Ops swaptotal-10638M            178887.00 (  0.00%)              0.00 (  0.00%)
> Ops swapin-0M                        0.00 (  0.00%)              0.00 (  0.00%)
> Ops swapin-1877M                 20710.00 (  0.00%)              0.00 (  0.00%)
> Ops swapin-6257M                 18803.00 (  0.00%)              0.00 (  0.00%)
> Ops swapin-10638M                18755.00 (  0.00%)              0.00 (  0.00%)
> Ops minorfaults-0M              866454.00 (  0.00%)         844880.00 (  2.49%)
> Ops minorfaults-1877M           957107.00 (  0.00%)         845839.00 ( 11.63%)
> Ops minorfaults-6257M           971144.00 (  0.00%)         844778.00 ( 13.01%)
> Ops minorfaults-10638M         1066811.00 (  0.00%)         843628.00 ( 20.92%)
> Ops majorfaults-0M                  17.00 (  0.00%)              0.00 (  0.00%)
> Ops majorfaults-1877M             7636.00 (  0.00%)             37.00 ( 99.52%)
> Ops majorfaults-6257M             6487.00 (  0.00%)             37.00 ( 99.43%)
> Ops majorfaults-10638M            7337.00 (  0.00%)             37.00 ( 99.50%)
> 
> Mmtests reporting seems to have a bug calculating the percentage when
> the numbers drop to 0, see swap activity.  Those should all be 100%.
> 

Yep. I added a note to the TODO list which is now going sideways on the
sheet. Really need to knock a few items off it.

Still, they key takeaway is that it's no longer swapping and with swapins
in particular that is a big deal. I think it's interesting to note that
major faults are also very different, higher than what can be accounted
for by just the swapping. I wonder if the shared libraries and executable
binaries also getting thrown out and paged back in.

>                mmotm       mmotm
>               unfair     fairpcp
> User          592.67      695.15
> System       3130.44     3628.81
> Elapsed      7209.01     7206.46
> 

I'm not concerned about the high user time here because it's due to not
swapping (I guess). The higher system CPU is interesting and while I expect
it's just because the process is busy I must find the time to see *where*
that time is spent for this workload some day.

>                                  mmotm       mmotm
>                                 unfair     fairpcp
> Page Ins                       1401120       42656
> Page Outs                    163980516   153864256
> Swap Ins                        316033           0
> Swap Outs                      2528278           0
> Alloc DMA                            0           0
> Alloc DMA32                   59139091    51707843
> Alloc Normal                  10013244    16310697
> Alloc Movable                        0           0
> Direct pages scanned            210080      235649
> Kswapd pages scanned          61960450    50130023
> Kswapd pages reclaimed        34998767    35769908
> Direct pages reclaimed          179655      173478
> Kswapd efficiency                  56%         71%
> Kswapd velocity               8594.863    6956.262
> Direct efficiency                  85%         73%
> Direct velocity                 29.141      32.700
> Percentage direct scans             0%          0%
> Page writes by reclaim         3523501           1
> Page writes file                995223           1
> Page writes anon               2528278           0
> Page reclaim immediate            2195        9188
> Page rescued immediate               0           0
> Slabs scanned                     2048        1536
> Direct inode steals                  0           0
> Kswapd inode steals                  0           0
> Kswapd skipped wait                  0           0
> THP fault alloc                      3           3
> THP collapse alloc                4958        3026
> THP splits                          28          27
> THP fault fallback                   0           0
> THP collapse fail                    7          72
> Compaction stalls                   65          32
> Compaction success                  57          14
> Compaction failures                  8          18
> Page migrate success             39460        9899
> Page migrate failure                 0           0
> Compaction pages isolated        87140       22017
> Compaction migrate scanned       53494       12526
> Compaction free scanned         913691      396861
> Compaction cost                     42          10
> NUMA PTE updates                     0           0
> NUMA hint faults                     0           0
> NUMA hint local faults               0           0
> NUMA pages migrated                  0           0
> AutoNUMA cost                        0           0
> 

btw, mmtests has another bug and that "Page Ins" and "Page Outs" figures
are completely bogus. They are replaced with simply Major and Minor
faults in my current git tree. Otherwise, note the decrease in kswapd
velocity. That's nice but nowhere near as nice as the elimination of page
writes from reclaim context!

> ---
> 
> Patch on top of mmotm:
> 
> ---
> From: Johannes Weiner <hannes@cmpxchg.org>
> Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
> 
> Avoid dirtying the same cache line with every single page allocation
> by making the fair per-zone allocation batch a vmstat item, which will
> turn it into batched percpu counters on SMP.
> 
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>

With this patch on top;

Acked-by: Mel Gorman <mgorman@suse.de>

Thanks very much Johannes, this is a great result. One note below

> @@ -2418,8 +2417,10 @@ static void prepare_slowpath(gfp_t gfp_mask, unsigned int order,
>  		 */
>  		if (zone_reclaim_mode && !zone_local(preferred_zone, zone))
>  			continue;
> -		zone->alloc_batch = high_wmark_pages(zone) -
> -			low_wmark_pages(zone);
> +		mod_zone_page_state(zone, NR_ALLOC_BATCH,
> +				    high_wmark_pages(zone) -
> +				    low_wmark_pages(zone) -
> +				    zone_page_state(zone, NR_ALLOC_BATCH));
>  	}
>  }
>  

Because of drift this is not exactly equivalent. The batch value will not
be reinitialised but instead adjusted by the delta but it's close enough
to not matter. Due to the size of the delta it will always spill over and
update the global counter so while the decrements from the alloc fast
paths are light, the reset is not. I see no way around this but if there
is still some noticable overhead then I bet this is where it is. It's
still a *LOT* better than what was there before and I think the cost is
justified this time.

-- 
Mel Gorman
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-08  4:16         ` Johannes Weiner
@ 2013-08-09 18:45           ` Rik van Riel
  -1 siblings, 0 replies; 82+ messages in thread
From: Rik van Riel @ 2013-08-09 18:45 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Mel Gorman, Andrew Morton, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On 08/08/2013 12:16 AM, Johannes Weiner wrote:

> Patch on top of mmotm:

Yes, please!

> ---
> From: Johannes Weiner <hannes@cmpxchg.org>
> Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
>
> Avoid dirtying the same cache line with every single page allocation
> by making the fair per-zone allocation batch a vmstat item, which will
> turn it into batched percpu counters on SMP.
>
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>

Reviewed-by: Rik van Riel <riel@redhat.com>

-- 
All rights reversed.

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-09 18:45           ` Rik van Riel
  0 siblings, 0 replies; 82+ messages in thread
From: Rik van Riel @ 2013-08-09 18:45 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Mel Gorman, Andrew Morton, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel

On 08/08/2013 12:16 AM, Johannes Weiner wrote:

> Patch on top of mmotm:

Yes, please!

> ---
> From: Johannes Weiner <hannes@cmpxchg.org>
> Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
>
> Avoid dirtying the same cache line with every single page allocation
> by making the fair per-zone allocation batch a vmstat item, which will
> turn it into batched percpu counters on SMP.
>
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>

Reviewed-by: Rik van Riel <riel@redhat.com>

-- 
All rights reversed.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-08  4:16         ` Johannes Weiner
                           ` (2 preceding siblings ...)
  (?)
@ 2013-08-16 17:07         ` Kevin Hilman
  -1 siblings, 0 replies; 82+ messages in thread
From: Kevin Hilman @ 2013-08-16 17:07 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Mel Gorman, Andrew Morton, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, LKML, linux-arm-kernel,
	Olof Johansson, Stephen Warren

[-- Attachment #1: Type: text/plain, Size: 3992 bytes --]

Hi Johannes,

On Wed, Aug 7, 2013 at 9:16 PM, Johannes Weiner <hannes@cmpxchg.org> wrote:
>
>
> Patch on top of mmotm:
>
> ---
> From: Johannes Weiner <hannes@cmpxchg.org>
> Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation
> batching
>
> Avoid dirtying the same cache line with every single page allocation
> by making the fair per-zone allocation batch a vmstat item, which will
> turn it into batched percpu counters on SMP.
>
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>


I bisected several boot failures on various ARM platform in next-20130816
down to this patch (commit 67131f9837 in linux-next.)  Simply reverting it
got things booting again on top of -next.  Example boot crash below.

Kevin


[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.11.0-rc5-next-20130816 (khilman@paris) (gcc
version 4.7.2 (Ubuntu/Linaro 4.7.2-1ubuntu1) ) #30 SMP Fri Aug 16 09:47:32
PDT 2013
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7),
cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
[    0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI
AM335x BeagleBone
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 130816
[    0.000000] free_area_init_node: node 0, pgdat c081d400, node_mem_map
c12fc000
[    0.000000]   Normal zone: 1024 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000] Unable to handle kernel NULL pointer dereference at virtual
address 00000026
[    0.000000] pgd = c0004000
[    0.000000] [00000026] *pgd=00000000
[    0.000000] Internal error: Oops: 5 [#1] SMP ARM
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted
3.11.0-rc5-next-20130816 #30
[    0.000000] task: c0793c70 ti: c0788000 task.ti: c0788000
[    0.000000] PC is at __mod_zone_page_state+0x2c/0xb4
[    0.000000] LR is at mod_zone_page_state+0x2c/0x4c
[    0.000000] pc : [<c00eb628>]    lr : [<c00ebbf0>]    psr: 60000193
[    0.000000] sp : c0789e84  ip : 00000026  fp : c0789ef8
[    0.000000] r10: c0789f04  r9 : c05149dc  r8 : 00000000
[    0.000000] r7 : 00000026  r6 : 00000000  r5 : c0791770  r4 : c0788000
[    0.000000] r3 : 00000000  r2 : 0001fb00  r1 : 00000001  r0 : c081d400
[    0.000000] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM
 Segment kernel
[    0.000000] Control: 10c5387d  Table: 80004019  DAC: 00000017
[    0>.000000] Process swapper (pid: 0, stack limit = 0xc0788240)
[    0.000000] Stack: (0xc0789e84 to 0xc078a000)
[    0.000000] 9e80:          60000193 0001fb00 00000001 c081d400 c0781570
c081d400 c081d400
[    0.000000] 9ea0: 00000000 0001fb00 00020000 c0747dd4 c077c5f4 00000001
0009ff00 0001fb00
[    0.000000] 9ec0: 00000400 00080000 00000000 bfffffff c07ebfb0 000a0000
c0789ef8 00080000
[    0.000000] 9ee0: 000a0000 00020000 000001cf c07ec188 000000cf c072ef2c
00020000 00000000
[    0.000000] 9f00: 00000000 00000100 00000000 00000000 00000000 00000000
c0821d0c dfefa000
[    0.000000] 9f20: c07ebfb0 00000001 00000001 c073080c c0789fdc c076abd4
ffff1000 0009feff
[    0.000000] 9f40: 00001000 00000007 c0734a14 c076abd4 c0821ca0 c0008000
c076c8f0 c07ec188
[    0.000000] 9f60: 413fc082 c0789fdc c064b328 c072cc3c 00000000 10c53c7d
c0d5e448 00000001
[    0.000000] 9f80: 00000000 c076c8ec c079542c 80004059 413fc082 00000000
00000000 c04f6298
[    0.000000] 9fa0: c064989c 00000001 00000000 c076c8ec c079542c 80004059
413fc082 00000000
[    0.000000] 9fc0: 00000000 c07297ec 00000000 00000000 00000000 00000000
00000000 c076c8f0
[    0.000000] 9fe0: 00000000 10c53c7d c07908e8 c076c8ec c079542c 80008074
00000000 00000000
[    0.000000] [<c00eb628>] (__mod_zone_page_state+0x2c/0xb4) from
[<c081d400>] (contig_page_data+0x0/0xd80)
[    0.000000] Code: e7958103 e0867001 e2877025 e1a0c007 (e19cc0d8)
[    0.000000] ---[ end trace 1b75b31a2719ed1c ]---

[-- Attachment #2: Type: text/html, Size: 5073 bytes --]

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-08  4:16         ` Johannes Weiner
                           ` (3 preceding siblings ...)
  (?)
@ 2013-08-16 17:17         ` Kevin Hilman
  2013-08-16 20:18             ` Johannes Weiner
  -1 siblings, 1 reply; 82+ messages in thread
From: Kevin Hilman @ 2013-08-16 17:17 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Mel Gorman, Andrew Morton, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel, sfr,
	linux-arm-kernel, Olof Johansson, Stephen Warren

[resend, gmail sent the other in HTML, sorry]

Hi Johannes,

Johannes Weiner <hannes@cmpxchg.org> writes:

> On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:

[...]

> Patch on top of mmotm:
>
> ---
> From: Johannes Weiner <hannes@cmpxchg.org>
> Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
>
> Avoid dirtying the same cache line with every single page allocation
> by making the fair per-zone allocation batch a vmstat item, which will
> turn it into batched percpu counters on SMP.
>
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>

I bisected several boot failures on various ARM platform in
next-20130816 down to this patch (commit 67131f9837 in linux-next.)

Simply reverting it got things booting again on top of -next.  Example
boot crash below.

Kevin

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.11.0-rc5-next-20130816 (khilman@paris) (gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-1ubuntu1) ) #30 SMP Fri Aug 16 09:47:32 PDT 2013
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x BeagleBone
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 130816
[    0.000000] free_area_init_node: node 0, pgdat c081d400, node_mem_map c12fc000
[    0.000000]   Normal zone: 1024 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000] Unable to handle kernel NULL pointer dereference at virtual address 00000026
[    0.000000] pgd = c0004000
[    0.000000] [00000026] *pgd=00000000
[    0.000000] Internal error: Oops: 5 [#1] SMP ARM
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.11.0-rc5-next-20130816 #30
[    0.000000] task: c0793c70 ti: c0788000 task.ti: c0788000
[    0.000000] PC is at __mod_zone_page_state+0x2c/0xb4
[    0.000000] LR is at mod_zone_page_state+0x2c/0x4c
[    0.000000] pc : [<c00eb628>]    lr : [<c00ebbf0>]    psr: 60000193
[    0.000000] sp : c0789e84  ip : 00000026  fp : c0789ef8
[    0.000000] r10: c0789f04  r9 : c05149dc  r8 : 00000000
[    0.000000] r7 : 00000026  r6 : 00000000  r5 : c0791770  r4 : c0788000
[    0.000000] r3 : 00000000  r2 : 0001fb00  r1 : 00000001  r0 : c081d400
[    0.000000] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[    0.000000] Control: 10c5387d  Table: 80004019  DAC: 00000017
[    0>.000000] Process swapper (pid: 0, stack limit = 0xc0788240)
[    0.000000] Stack: (0xc0789e84 to 0xc078a000)
[    0.000000] 9e80:          60000193 0001fb00 00000001 c081d400 c0781570 c081d400 c081d400
[    0.000000] 9ea0: 00000000 0001fb00 00020000 c0747dd4 c077c5f4 00000001 0009ff00 0001fb00
[    0.000000] 9ec0: 00000400 00080000 00000000 bfffffff c07ebfb0 000a0000 c0789ef8 00080000
[    0.000000] 9ee0: 000a0000 00020000 000001cf c07ec188 000000cf c072ef2c 00020000 00000000
[    0.000000] 9f00: 00000000 00000100 00000000 00000000 00000000 00000000 c0821d0c dfefa000
[    0.000000] 9f20: c07ebfb0 00000001 00000001 c073080c c0789fdc c076abd4 ffff1000 0009feff
[    0.000000] 9f40: 00001000 00000007 c0734a14 c076abd4 c0821ca0 c0008000 c076c8f0 c07ec188
[    0.000000] 9f60: 413fc082 c0789fdc c064b328 c072cc3c 00000000 10c53c7d c0d5e448 00000001
[    0.000000] 9f80: 00000000 c076c8ec c079542c 80004059 413fc082 00000000 00000000 c04f6298
[    0.000000] 9fa0: c064989c 00000001 00000000 c076c8ec c079542c 80004059 413fc082 00000000
[    0.000000] 9fc0: 00000000 c07297ec 00000000 00000000 00000000 00000000 00000000 c076c8f0
[    0.000000] 9fe0: 00000000 10c53c7d c07908e8 c076c8ec c079542c 80008074 00000000 00000000
[    0.000000] [<c00eb628>] (__mod_zone_page_state+0x2c/0xb4) from [<c081d400>] (contig_page_data+0x0/0xd80)
[    0.000000] Code: e7958103 e0867001 e2877025 e1a0c007 (e19cc0d8) 
[    0.000000] ---[ end trace 1b75b31a2719ed1c ]---

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-16 17:17         ` Kevin Hilman
  2013-08-16 20:18             ` Johannes Weiner
@ 2013-08-16 20:18             ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-16 20:18 UTC (permalink / raw)
  To: Kevin Hilman
  Cc: Mel Gorman, Andrew Morton, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel,
	sfr@canb.auug.org.au linux-arm-kernel, Olof Johansson,
	Stephen Warren

Hi Kevin,

On Fri, Aug 16, 2013 at 10:17:01AM -0700, Kevin Hilman wrote:
> Johannes Weiner <hannes@cmpxchg.org> writes:
> > On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
> > Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
> >
> > Avoid dirtying the same cache line with every single page allocation
> > by making the fair per-zone allocation batch a vmstat item, which will
> > turn it into batched percpu counters on SMP.
> >
> > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> 
> I bisected several boot failures on various ARM platform in
> next-20130816 down to this patch (commit 67131f9837 in linux-next.)
> 
> Simply reverting it got things booting again on top of -next.  Example
> boot crash below.

Thanks for the bisect and report!

I deref the percpu pointers before initializing them properly.  It
didn't trigger on x86 because the percpu offset added to the pointer
is big enough so that it does not fall into PFN 0, but it probably
ended up corrupting something...

Could you try this patch on top of linux-next instead of the revert?

Thanks,
Johannes

---
From: Johannes Weiner <hannes@cmpxchg.org>
Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching fix

Initialize the per-cpu counters before modifying them.  Otherwise:

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.11.0-rc5-next-20130816 (khilman@paris) (gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-1ubuntu1) ) #30 SMP Fri Aug 16 09:47:32 PDT 2013
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x BeagleBone
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 130816
[    0.000000] free_area_init_node: node 0, pgdat c081d400, node_mem_map c12fc000
[    0.000000]   Normal zone: 1024 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000] Unable to handle kernel NULL pointer dereference at virtual address 00000026
[    0.000000] pgd = c0004000
[    0.000000] [00000026] *pgd=00000000
[    0.000000] Internal error: Oops: 5 [#1] SMP ARM
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.11.0-rc5-next-20130816 #30
[    0.000000] task: c0793c70 ti: c0788000 task.ti: c0788000
[    0.000000] PC is at __mod_zone_page_state+0x2c/0xb4
[    0.000000] LR is at mod_zone_page_state+0x2c/0x4c

Reported-by: Kevin Hilman <khilman@linaro.org>
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
---
 mm/page_alloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 6a95d39..b9e8f2f 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -4826,11 +4826,11 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
 		spin_lock_init(&zone->lru_lock);
 		zone_seqlock_init(zone);
 		zone->zone_pgdat = pgdat;
+		zone_pcp_init(zone);
 
 		/* For bootup, initialized properly in watermark setup */
 		mod_zone_page_state(zone, NR_ALLOC_BATCH, zone->managed_pages);
 
-		zone_pcp_init(zone);
 		lruvec_init(&zone->lruvec);
 		if (!size)
 			continue;
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-16 20:18             ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-16 20:18 UTC (permalink / raw)
  To: Kevin Hilman
  Cc: Mel Gorman, Andrew Morton, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel,
	sfr@canb.auug.org.au linux-arm-kernel, Olof Johansson,
	Stephen Warren

Hi Kevin,

On Fri, Aug 16, 2013 at 10:17:01AM -0700, Kevin Hilman wrote:
> Johannes Weiner <hannes@cmpxchg.org> writes:
> > On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
> > Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
> >
> > Avoid dirtying the same cache line with every single page allocation
> > by making the fair per-zone allocation batch a vmstat item, which will
> > turn it into batched percpu counters on SMP.
> >
> > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> 
> I bisected several boot failures on various ARM platform in
> next-20130816 down to this patch (commit 67131f9837 in linux-next.)
> 
> Simply reverting it got things booting again on top of -next.  Example
> boot crash below.

Thanks for the bisect and report!

I deref the percpu pointers before initializing them properly.  It
didn't trigger on x86 because the percpu offset added to the pointer
is big enough so that it does not fall into PFN 0, but it probably
ended up corrupting something...

Could you try this patch on top of linux-next instead of the revert?

Thanks,
Johannes

---
From: Johannes Weiner <hannes@cmpxchg.org>
Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching fix

Initialize the per-cpu counters before modifying them.  Otherwise:

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.11.0-rc5-next-20130816 (khilman@paris) (gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-1ubuntu1) ) #30 SMP Fri Aug 16 09:47:32 PDT 2013
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x BeagleBone
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 130816
[    0.000000] free_area_init_node: node 0, pgdat c081d400, node_mem_map c12fc000
[    0.000000]   Normal zone: 1024 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000] Unable to handle kernel NULL pointer dereference at virtual address 00000026
[    0.000000] pgd = c0004000
[    0.000000] [00000026] *pgd=00000000
[    0.000000] Internal error: Oops: 5 [#1] SMP ARM
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.11.0-rc5-next-20130816 #30
[    0.000000] task: c0793c70 ti: c0788000 task.ti: c0788000
[    0.000000] PC is at __mod_zone_page_state+0x2c/0xb4
[    0.000000] LR is at mod_zone_page_state+0x2c/0x4c

Reported-by: Kevin Hilman <khilman@linaro.org>
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
---
 mm/page_alloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 6a95d39..b9e8f2f 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -4826,11 +4826,11 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
 		spin_lock_init(&zone->lru_lock);
 		zone_seqlock_init(zone);
 		zone->zone_pgdat = pgdat;
+		zone_pcp_init(zone);
 
 		/* For bootup, initialized properly in watermark setup */
 		mod_zone_page_state(zone, NR_ALLOC_BATCH, zone->managed_pages);
 
-		zone_pcp_init(zone);
 		lruvec_init(&zone->lruvec);
 		if (!size)
 			continue;
-- 
1.8.3.2

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-16 20:18             ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2013-08-16 20:18 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Kevin,

On Fri, Aug 16, 2013 at 10:17:01AM -0700, Kevin Hilman wrote:
> Johannes Weiner <hannes@cmpxchg.org> writes:
> > On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
> > Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
> >
> > Avoid dirtying the same cache line with every single page allocation
> > by making the fair per-zone allocation batch a vmstat item, which will
> > turn it into batched percpu counters on SMP.
> >
> > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> 
> I bisected several boot failures on various ARM platform in
> next-20130816 down to this patch (commit 67131f9837 in linux-next.)
> 
> Simply reverting it got things booting again on top of -next.  Example
> boot crash below.

Thanks for the bisect and report!

I deref the percpu pointers before initializing them properly.  It
didn't trigger on x86 because the percpu offset added to the pointer
is big enough so that it does not fall into PFN 0, but it probably
ended up corrupting something...

Could you try this patch on top of linux-next instead of the revert?

Thanks,
Johannes

---
From: Johannes Weiner <hannes@cmpxchg.org>
Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching fix

Initialize the per-cpu counters before modifying them.  Otherwise:

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.11.0-rc5-next-20130816 (khilman at paris) (gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-1ubuntu1) ) #30 SMP Fri Aug 16 09:47:32 PDT 2013
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x BeagleBone
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 130816
[    0.000000] free_area_init_node: node 0, pgdat c081d400, node_mem_map c12fc000
[    0.000000]   Normal zone: 1024 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000] Unable to handle kernel NULL pointer dereference at virtual address 00000026
[    0.000000] pgd = c0004000
[    0.000000] [00000026] *pgd=00000000
[    0.000000] Internal error: Oops: 5 [#1] SMP ARM
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.11.0-rc5-next-20130816 #30
[    0.000000] task: c0793c70 ti: c0788000 task.ti: c0788000
[    0.000000] PC is at __mod_zone_page_state+0x2c/0xb4
[    0.000000] LR is at mod_zone_page_state+0x2c/0x4c

Reported-by: Kevin Hilman <khilman@linaro.org>
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
---
 mm/page_alloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 6a95d39..b9e8f2f 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -4826,11 +4826,11 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
 		spin_lock_init(&zone->lru_lock);
 		zone_seqlock_init(zone);
 		zone->zone_pgdat = pgdat;
+		zone_pcp_init(zone);
 
 		/* For bootup, initialized properly in watermark setup */
 		mod_zone_page_state(zone, NR_ALLOC_BATCH, zone->managed_pages);
 
-		zone_pcp_init(zone);
 		lruvec_init(&zone->lruvec);
 		if (!size)
 			continue;
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-16 20:18             ` Johannes Weiner
  (?)
@ 2013-08-16 21:24               ` Stephen Warren
  -1 siblings, 0 replies; 82+ messages in thread
From: Stephen Warren @ 2013-08-16 21:24 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Kevin Hilman, Mel Gorman, Andrew Morton, Rik van Riel,
	Andrea Arcangeli, Zlatko Calusic, Minchan Kim, linux-mm,
	linux-kernel, sfr@canb.auug.org.au linux-arm-kernel,
	Olof Johansson

On 08/16/2013 02:18 PM, Johannes Weiner wrote:
> Hi Kevin,
> 
> On Fri, Aug 16, 2013 at 10:17:01AM -0700, Kevin Hilman wrote:
>> Johannes Weiner <hannes@cmpxchg.org> writes:
>>> On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
>>> Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
>>>
>>> Avoid dirtying the same cache line with every single page allocation
>>> by making the fair per-zone allocation batch a vmstat item, which will
>>> turn it into batched percpu counters on SMP.
>>>
>>> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
>>
>> I bisected several boot failures on various ARM platform in
>> next-20130816 down to this patch (commit 67131f9837 in linux-next.)
>>
>> Simply reverting it got things booting again on top of -next.  Example
>> boot crash below.
> 
> Thanks for the bisect and report!
> 
> I deref the percpu pointers before initializing them properly.  It
> didn't trigger on x86 because the percpu offset added to the pointer
> is big enough so that it does not fall into PFN 0, but it probably
> ended up corrupting something...
> 
> Could you try this patch on top of linux-next instead of the revert?

That patch,
Tested-by: Stephen Warren <swarren@nvidia.com>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-16 21:24               ` Stephen Warren
  0 siblings, 0 replies; 82+ messages in thread
From: Stephen Warren @ 2013-08-16 21:24 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Kevin Hilman, Mel Gorman, Andrew Morton, Rik van Riel,
	Andrea Arcangeli, Zlatko Calusic, Minchan Kim, linux-mm,
	linux-kernel, sfr@canb.auug.org.au linux-arm-kernel,
	Olof Johansson

On 08/16/2013 02:18 PM, Johannes Weiner wrote:
> Hi Kevin,
> 
> On Fri, Aug 16, 2013 at 10:17:01AM -0700, Kevin Hilman wrote:
>> Johannes Weiner <hannes@cmpxchg.org> writes:
>>> On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
>>> Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
>>>
>>> Avoid dirtying the same cache line with every single page allocation
>>> by making the fair per-zone allocation batch a vmstat item, which will
>>> turn it into batched percpu counters on SMP.
>>>
>>> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
>>
>> I bisected several boot failures on various ARM platform in
>> next-20130816 down to this patch (commit 67131f9837 in linux-next.)
>>
>> Simply reverting it got things booting again on top of -next.  Example
>> boot crash below.
> 
> Thanks for the bisect and report!
> 
> I deref the percpu pointers before initializing them properly.  It
> didn't trigger on x86 because the percpu offset added to the pointer
> is big enough so that it does not fall into PFN 0, but it probably
> ended up corrupting something...
> 
> Could you try this patch on top of linux-next instead of the revert?

That patch,
Tested-by: Stephen Warren <swarren@nvidia.com>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-16 21:24               ` Stephen Warren
  0 siblings, 0 replies; 82+ messages in thread
From: Stephen Warren @ 2013-08-16 21:24 UTC (permalink / raw)
  To: linux-arm-kernel

On 08/16/2013 02:18 PM, Johannes Weiner wrote:
> Hi Kevin,
> 
> On Fri, Aug 16, 2013 at 10:17:01AM -0700, Kevin Hilman wrote:
>> Johannes Weiner <hannes@cmpxchg.org> writes:
>>> On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
>>> Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
>>>
>>> Avoid dirtying the same cache line with every single page allocation
>>> by making the fair per-zone allocation batch a vmstat item, which will
>>> turn it into batched percpu counters on SMP.
>>>
>>> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
>>
>> I bisected several boot failures on various ARM platform in
>> next-20130816 down to this patch (commit 67131f9837 in linux-next.)
>>
>> Simply reverting it got things booting again on top of -next.  Example
>> boot crash below.
> 
> Thanks for the bisect and report!
> 
> I deref the percpu pointers before initializing them properly.  It
> didn't trigger on x86 because the percpu offset added to the pointer
> is big enough so that it does not fall into PFN 0, but it probably
> ended up corrupting something...
> 
> Could you try this patch on top of linux-next instead of the revert?

That patch,
Tested-by: Stephen Warren <swarren@nvidia.com>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-16 20:18             ` Johannes Weiner
  (?)
@ 2013-08-16 21:52               ` Kevin Hilman
  -1 siblings, 0 replies; 82+ messages in thread
From: Kevin Hilman @ 2013-08-16 21:52 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Mel Gorman, Andrew Morton, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel, sfr,
	linux-arm-kernel, Olof Johansson, Stephen Warren

Johannes Weiner <hannes@cmpxchg.org> writes:

> Hi Kevin,
>
> On Fri, Aug 16, 2013 at 10:17:01AM -0700, Kevin Hilman wrote:
>> Johannes Weiner <hannes@cmpxchg.org> writes:
>> > On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
>> > Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
>> >
>> > Avoid dirtying the same cache line with every single page allocation
>> > by making the fair per-zone allocation batch a vmstat item, which will
>> > turn it into batched percpu counters on SMP.
>> >
>> > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
>> 
>> I bisected several boot failures on various ARM platform in
>> next-20130816 down to this patch (commit 67131f9837 in linux-next.)
>> 
>> Simply reverting it got things booting again on top of -next.  Example
>> boot crash below.
>
> Thanks for the bisect and report!

You're welcome.  Thanks for the quick fix!

> I deref the percpu pointers before initializing them properly.  It
> didn't trigger on x86 because the percpu offset added to the pointer
> is big enough so that it does not fall into PFN 0, but it probably
> ended up corrupting something...
>
> Could you try this patch on top of linux-next instead of the revert?

Yup, that change fixes it.

Tested-by: Kevin Hilman <khilman@linaro.org>

Kevin


^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-16 21:52               ` Kevin Hilman
  0 siblings, 0 replies; 82+ messages in thread
From: Kevin Hilman @ 2013-08-16 21:52 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Mel Gorman, Andrew Morton, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel, sfr,
	linux-arm-kernel, Olof Johansson, Stephen Warren

Johannes Weiner <hannes@cmpxchg.org> writes:

> Hi Kevin,
>
> On Fri, Aug 16, 2013 at 10:17:01AM -0700, Kevin Hilman wrote:
>> Johannes Weiner <hannes@cmpxchg.org> writes:
>> > On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
>> > Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
>> >
>> > Avoid dirtying the same cache line with every single page allocation
>> > by making the fair per-zone allocation batch a vmstat item, which will
>> > turn it into batched percpu counters on SMP.
>> >
>> > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
>> 
>> I bisected several boot failures on various ARM platform in
>> next-20130816 down to this patch (commit 67131f9837 in linux-next.)
>> 
>> Simply reverting it got things booting again on top of -next.  Example
>> boot crash below.
>
> Thanks for the bisect and report!

You're welcome.  Thanks for the quick fix!

> I deref the percpu pointers before initializing them properly.  It
> didn't trigger on x86 because the percpu offset added to the pointer
> is big enough so that it does not fall into PFN 0, but it probably
> ended up corrupting something...
>
> Could you try this patch on top of linux-next instead of the revert?

Yup, that change fixes it.

Tested-by: Kevin Hilman <khilman@linaro.org>

Kevin

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-16 21:52               ` Kevin Hilman
  0 siblings, 0 replies; 82+ messages in thread
From: Kevin Hilman @ 2013-08-16 21:52 UTC (permalink / raw)
  To: linux-arm-kernel

Johannes Weiner <hannes@cmpxchg.org> writes:

> Hi Kevin,
>
> On Fri, Aug 16, 2013 at 10:17:01AM -0700, Kevin Hilman wrote:
>> Johannes Weiner <hannes@cmpxchg.org> writes:
>> > On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
>> > Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
>> >
>> > Avoid dirtying the same cache line with every single page allocation
>> > by making the fair per-zone allocation batch a vmstat item, which will
>> > turn it into batched percpu counters on SMP.
>> >
>> > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
>> 
>> I bisected several boot failures on various ARM platform in
>> next-20130816 down to this patch (commit 67131f9837 in linux-next.)
>> 
>> Simply reverting it got things booting again on top of -next.  Example
>> boot crash below.
>
> Thanks for the bisect and report!

You're welcome.  Thanks for the quick fix!

> I deref the percpu pointers before initializing them properly.  It
> didn't trigger on x86 because the percpu offset added to the pointer
> is big enough so that it does not fall into PFN 0, but it probably
> ended up corrupting something...
>
> Could you try this patch on top of linux-next instead of the revert?

Yup, that change fixes it.

Tested-by: Kevin Hilman <khilman@linaro.org>

Kevin

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-16 21:52               ` Kevin Hilman
@ 2013-08-19  0:48                 ` Stephen Rothwell
  -1 siblings, 0 replies; 82+ messages in thread
From: Stephen Rothwell @ 2013-08-19  0:48 UTC (permalink / raw)
  To: Kevin Hilman
  Cc: Johannes Weiner, Mel Gorman, Andrew Morton, Rik van Riel,
	Andrea Arcangeli, Zlatko Calusic, Minchan Kim, linux-mm,
	linux-kernel, linux-arm-kernel, Olof Johansson, Stephen Warren

[-- Attachment #1: Type: text/plain, Size: 1728 bytes --]

Hi all,

On Fri, 16 Aug 2013 14:52:11 -0700 Kevin Hilman <khilman@linaro.org> wrote:
>
> Johannes Weiner <hannes@cmpxchg.org> writes:
> 
> > On Fri, Aug 16, 2013 at 10:17:01AM -0700, Kevin Hilman wrote:
> >> Johannes Weiner <hannes@cmpxchg.org> writes:
> >> > On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
> >> > Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
> >> >
> >> > Avoid dirtying the same cache line with every single page allocation
> >> > by making the fair per-zone allocation batch a vmstat item, which will
> >> > turn it into batched percpu counters on SMP.
> >> >
> >> > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> >> 
> >> I bisected several boot failures on various ARM platform in
> >> next-20130816 down to this patch (commit 67131f9837 in linux-next.)
> >> 
> >> Simply reverting it got things booting again on top of -next.  Example
> >> boot crash below.
> >
> > Thanks for the bisect and report!
> 
> You're welcome.  Thanks for the quick fix!
> 
> > I deref the percpu pointers before initializing them properly.  It
> > didn't trigger on x86 because the percpu offset added to the pointer
> > is big enough so that it does not fall into PFN 0, but it probably
> > ended up corrupting something...
> >
> > Could you try this patch on top of linux-next instead of the revert?
> 
> Yup, that change fixes it.
> 
> Tested-by: Kevin Hilman <khilman@linaro.org>

> Tested-by: Stephen Warren <swarren@nvidia.com>

I will add that into the akpm-current tree in linux-next today (unless
Andrew releases a new mmotm in the mean time).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 82+ messages in thread

* [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2013-08-19  0:48                 ` Stephen Rothwell
  0 siblings, 0 replies; 82+ messages in thread
From: Stephen Rothwell @ 2013-08-19  0:48 UTC (permalink / raw)
  To: linux-arm-kernel

Hi all,

On Fri, 16 Aug 2013 14:52:11 -0700 Kevin Hilman <khilman@linaro.org> wrote:
>
> Johannes Weiner <hannes@cmpxchg.org> writes:
> 
> > On Fri, Aug 16, 2013 at 10:17:01AM -0700, Kevin Hilman wrote:
> >> Johannes Weiner <hannes@cmpxchg.org> writes:
> >> > On Wed, Aug 07, 2013 at 11:37:43AM -0400, Johannes Weiner wrote:
> >> > Subject: [patch] mm: page_alloc: use vmstats for fair zone allocation batching
> >> >
> >> > Avoid dirtying the same cache line with every single page allocation
> >> > by making the fair per-zone allocation batch a vmstat item, which will
> >> > turn it into batched percpu counters on SMP.
> >> >
> >> > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> >> 
> >> I bisected several boot failures on various ARM platform in
> >> next-20130816 down to this patch (commit 67131f9837 in linux-next.)
> >> 
> >> Simply reverting it got things booting again on top of -next.  Example
> >> boot crash below.
> >
> > Thanks for the bisect and report!
> 
> You're welcome.  Thanks for the quick fix!
> 
> > I deref the percpu pointers before initializing them properly.  It
> > didn't trigger on x86 because the percpu offset added to the pointer
> > is big enough so that it does not fall into PFN 0, but it probably
> > ended up corrupting something...
> >
> > Could you try this patch on top of linux-next instead of the revert?
> 
> Yup, that change fixes it.
> 
> Tested-by: Kevin Hilman <khilman@linaro.org>

> Tested-by: Stephen Warren <swarren@nvidia.com>

I will add that into the akpm-current tree in linux-next today (unless
Andrew releases a new mmotm in the mean time).

-- 
Cheers,
Stephen Rothwell                    sfr at canb.auug.org.au
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130819/9b117b24/attachment.sig>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2013-08-02 15:37   ` Johannes Weiner
@ 2014-04-02 14:26     ` Thomas Schwinge
  -1 siblings, 0 replies; 82+ messages in thread
From: Thomas Schwinge @ 2014-04-02 14:26 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel, Andrew Morton

[-- Attachment #1: Type: text/plain, Size: 27625 bytes --]

Hi!

On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> Each zone that holds userspace pages of one workload must be aged at a
> speed proportional to the zone size.  [...]

> Fix this with a very simple round robin allocator.  [...]

This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).

I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
and it started to exhibit "strange" issues, which I then bisected to this
patch.  I'm not saying that the patch is faulty, as it seems to be
working fine for everyone else, so I rather assume that something in a
(vastly?) different corner of the kernel (or my hardware?) is broken.
;-)

The issue is that when X.org/lightdm starts up, there are "garbled"
section on the screen, for example, rectangular boxes that are just black
or otherwise "distorted", and/or sets of glyphs (corresponding to a set
of characters; but not all characters) are displayed as rectangular gray
or black boxes, and/or icons in a GNOME session are not displayed
properly, and so on.  (Can take a snapshot if that helps?)  Switching to
a Linux console, I can use that one fine.  Switching back to X, in the
majority of all cases, the screen will be completely black, but with the
mouse cursor still rendered properly (done in hardware, I assume).

Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
top of v3.12, and everything is back to normal.  The problem also
persists with a v3.14 kernel that I just built.

I will try to figure out what's going on, but will gladly take any
pointers, or suggestions about how to tackle such a problem.

The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
using that; instead I put in a Sapphire Radeon HD 4350 card.

    $ cat < /proc/cpuinfo
    processor       : 0
    vendor_id       : AuthenticAMD
    cpu family      : 15
    model           : 47
    model name      : AMD Sempron(tm) Processor 3000+
    stepping        : 2
    cpu MHz         : 1000.000
    cache size      : 128 KB
    physical id     : 0
    siblings        : 1
    core id         : 0
    cpu cores       : 1
    apicid          : 0
    initial apicid  : 0
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 1
    wp              : yes
    flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
    bogomips        : 2000.20
    TLB size        : 1024 4K pages
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 40 bits physical, 48 bits virtual
    power management: ts fid vid ttp tm stc
    $ sudo lspci -nn -k -vv
    00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
            Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
            Latency: 64
            Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
            Capabilities: [a0] AGP version 3.0
                    Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
                    Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
            Capabilities: [d0] HyperTransport: Slave or Primary Interface
                    Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
                    Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
                    Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
                    Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
                    Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
                    Revision ID: 1.05
                    Link Frequency 0: 800MHz
                    Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
                    Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
                    Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
                    Link Frequency 1: 200MHz
                    Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
                    Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
                    Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
                    Prefetchable memory behind bridge Upper: 00-00
                    Bus Number: 00
            Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
            Capabilities: [5c] HyperTransport: Revision ID: 1.05
            Kernel driver in use: agpgart-amd64
    
    00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 0, Cache Line Size: 64 bytes
            Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
            I/O behind bridge: 00002000-00002fff
            Memory behind bridge: f2100000-f21fffff
            Prefetchable memory behind bridge: e0000000-efffffff
            Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
            BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
                    PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
            Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
                    DevCap: MaxPayload 128 bytes, PhantFunc 0
                            ExtTag+ RBE-
                    DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                            MaxPayload 128 bytes, MaxReadReq 128 bytes
                    DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
                    LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
                            ClockPM- Surprise- LLActRep+ BwNot-
                    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                    LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
                    SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
                            Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
                    SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
                            Control: AttnInd Off, PwrInd Off, Power- Interlock-
                    SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
                            Changed: MRL- PresDet- LinkState-
                    RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
                    RootCap: CRSVisible-
                    RootSta: PME ReqID 0000, PMEStatus- PMEPending-
            Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
            Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
                    Address: 00000000  Data: 0000
            Capabilities: [f4] Power Management version 2
                    Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Kernel driver in use: pcieport
    
    00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
            Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
            Latency: 0
    
    00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
            Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
            Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 128
            Interrupt: pin ? routed to IRQ 16
            Region 0: I/O ports at 01f0 [size=8]
            Region 1: I/O ports at 03f4
            Region 2: I/O ports at 0170 [size=8]
            Region 3: I/O ports at 0374
            Region 4: I/O ports at 1c80 [size=16]
            Capabilities: [58] Power Management version 2
                    Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Kernel driver in use: pata_sis
    
    00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
            Subsystem: Fujitsu Technology Solutions Device [1734:109c]
            Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 173 (13000ns min, 2750ns max)
            Interrupt: pin C routed to IRQ 18
            Region 0: I/O ports at 1400 [size=256]
            Region 1: I/O ports at 1000 [size=128]
            Capabilities: [48] Power Management version 2
                    Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Kernel driver in use: snd_intel8x0
    
    00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
            Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 64 (20000ns max)
            Interrupt: pin A routed to IRQ 20
            Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
            Kernel driver in use: ohci-pci
    
    00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
            Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 64 (20000ns max)
            Interrupt: pin B routed to IRQ 21
            Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
            Kernel driver in use: ohci-pci
    
    00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
            Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 64 (20000ns max)
            Interrupt: pin C routed to IRQ 22
            Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
            Kernel driver in use: ohci-pci
    
    00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
            Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
            Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 64 (20000ns max)
            Interrupt: pin D routed to IRQ 23
            Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
            Capabilities: [50] Power Management version 2
                    Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Kernel driver in use: ehci-pci
    
    00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
            Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
            Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 64
            Interrupt: pin A routed to IRQ 17
            Region 0: I/O ports at 1cb0 [size=8]
            Region 1: I/O ports at 1ca4 [size=4]
            Region 2: I/O ports at 1ca8 [size=8]
            Region 3: I/O ports at 1ca0 [size=4]
            Region 4: I/O ports at 1c90 [size=16]
            Region 5: I/O ports at 1c00 [size=128]
            Capabilities: [58] Power Management version 2
                    Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Kernel driver in use: sata_sis
    
    00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 0, Cache Line Size: 64 bytes
            Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
            Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
            BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
                    PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
            Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
            Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
                    Address: fee0100c  Data: 4181
            Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
                    DevCap: MaxPayload 128 bytes, PhantFunc 0
                            ExtTag+ RBE-
                    DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                            MaxPayload 128 bytes, MaxReadReq 128 bytes
                    DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
                    LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
                            ClockPM- Surprise- LLActRep- BwNot-
                    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
                            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                    LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                    SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
                            Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
                    SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
                            Control: AttnInd Off, PwrInd Off, Power- Interlock-
                    SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
                            Changed: MRL- PresDet- LinkState-
                    RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
                    RootCap: CRSVisible-
                    RootSta: PME ReqID 0000, PMEStatus- PMEPending-
            Capabilities: [f4] Power Management version 2
                    Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Capabilities: [100 v1] Virtual Channel
                    Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
                    Arb:    Fixed- WRR32- WRR64- WRR128-
                    Ctrl:   ArbSelect=Fixed
                    Status: InProgress-
                    VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
                            Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
                            Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
                            Status: NegoPending- InProgress-
            Capabilities: [130 v1] Advanced Error Reporting
                    UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                    UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                    UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                    CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                    CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                    AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
            Kernel driver in use: pcieport
    
    00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
            Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
            Interrupt: pin A routed to IRQ 19
            Region 0: I/O ports at 1800 [size=256]
            Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
            Capabilities: [dc] Power Management version 2
                    Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Kernel driver in use: r8169
    
    00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
            Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Capabilities: [80] HyperTransport: Host or Secondary Interface
                    Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
                    Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
                    Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
                    Revision ID: 1.02
                    Link Frequency: 800MHz
                    Link Error: <Prot- <Ovfl- <EOC- CTLTm-
                    Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
                    Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
    
    00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
            Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    
    00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
            Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Kernel driver in use: amd64_edac
    
    00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
            Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Kernel driver in use: k8temp
    
    01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
            Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
            Latency: 0, Cache Line Size: 64 bytes
            Interrupt: pin A routed to IRQ 42
            Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
            Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
            Region 4: I/O ports at 2000 [size=256]
            [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
            Capabilities: [50] Power Management version 3
                    Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
                    DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
                            ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                    DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                            MaxPayload 128 bytes, MaxReadReq 128 bytes
                    DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                    LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
                            ClockPM- Surprise- LLActRep- BwNot-
                    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                    LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                    DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
                    DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                    LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
                             Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                             Compliance De-emphasis: -6dB
                    LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
                             EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
            Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
                    Address: 00000000fee0100c  Data: 41e1
            Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
            Kernel driver in use: radeon
    
    01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
            Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 0, Cache Line Size: 64 bytes
            Interrupt: pin B routed to IRQ 41
            Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
            Capabilities: [50] Power Management version 3
                    Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
                    DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
                            ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                    DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                            MaxPayload 128 bytes, MaxReadReq 128 bytes
                    DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                    LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
                            ClockPM- Surprise- LLActRep- BwNot-
                    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                    LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                    DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
                    DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                    LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
                             EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
            Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
                    Address: 00000000fee0100c  Data: 41d1
            Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
            Kernel driver in use: snd_hda_intel


Grüße,
 Thomas

[-- Attachment #2: Type: application/pgp-signature, Size: 489 bytes --]

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-02 14:26     ` Thomas Schwinge
  0 siblings, 0 replies; 82+ messages in thread
From: Thomas Schwinge @ 2014-04-02 14:26 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel, Andrew Morton

[-- Attachment #1: Type: text/plain, Size: 27625 bytes --]

Hi!

On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> Each zone that holds userspace pages of one workload must be aged at a
> speed proportional to the zone size.  [...]

> Fix this with a very simple round robin allocator.  [...]

This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).

I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
and it started to exhibit "strange" issues, which I then bisected to this
patch.  I'm not saying that the patch is faulty, as it seems to be
working fine for everyone else, so I rather assume that something in a
(vastly?) different corner of the kernel (or my hardware?) is broken.
;-)

The issue is that when X.org/lightdm starts up, there are "garbled"
section on the screen, for example, rectangular boxes that are just black
or otherwise "distorted", and/or sets of glyphs (corresponding to a set
of characters; but not all characters) are displayed as rectangular gray
or black boxes, and/or icons in a GNOME session are not displayed
properly, and so on.  (Can take a snapshot if that helps?)  Switching to
a Linux console, I can use that one fine.  Switching back to X, in the
majority of all cases, the screen will be completely black, but with the
mouse cursor still rendered properly (done in hardware, I assume).

Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
top of v3.12, and everything is back to normal.  The problem also
persists with a v3.14 kernel that I just built.

I will try to figure out what's going on, but will gladly take any
pointers, or suggestions about how to tackle such a problem.

The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
using that; instead I put in a Sapphire Radeon HD 4350 card.

    $ cat < /proc/cpuinfo
    processor       : 0
    vendor_id       : AuthenticAMD
    cpu family      : 15
    model           : 47
    model name      : AMD Sempron(tm) Processor 3000+
    stepping        : 2
    cpu MHz         : 1000.000
    cache size      : 128 KB
    physical id     : 0
    siblings        : 1
    core id         : 0
    cpu cores       : 1
    apicid          : 0
    initial apicid  : 0
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 1
    wp              : yes
    flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
    bogomips        : 2000.20
    TLB size        : 1024 4K pages
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 40 bits physical, 48 bits virtual
    power management: ts fid vid ttp tm stc
    $ sudo lspci -nn -k -vv
    00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
            Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
            Latency: 64
            Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
            Capabilities: [a0] AGP version 3.0
                    Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
                    Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
            Capabilities: [d0] HyperTransport: Slave or Primary Interface
                    Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
                    Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
                    Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
                    Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
                    Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
                    Revision ID: 1.05
                    Link Frequency 0: 800MHz
                    Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
                    Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
                    Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
                    Link Frequency 1: 200MHz
                    Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
                    Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
                    Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
                    Prefetchable memory behind bridge Upper: 00-00
                    Bus Number: 00
            Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
            Capabilities: [5c] HyperTransport: Revision ID: 1.05
            Kernel driver in use: agpgart-amd64
    
    00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 0, Cache Line Size: 64 bytes
            Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
            I/O behind bridge: 00002000-00002fff
            Memory behind bridge: f2100000-f21fffff
            Prefetchable memory behind bridge: e0000000-efffffff
            Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
            BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
                    PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
            Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
                    DevCap: MaxPayload 128 bytes, PhantFunc 0
                            ExtTag+ RBE-
                    DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                            MaxPayload 128 bytes, MaxReadReq 128 bytes
                    DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
                    LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
                            ClockPM- Surprise- LLActRep+ BwNot-
                    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                    LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
                    SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
                            Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
                    SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
                            Control: AttnInd Off, PwrInd Off, Power- Interlock-
                    SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
                            Changed: MRL- PresDet- LinkState-
                    RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
                    RootCap: CRSVisible-
                    RootSta: PME ReqID 0000, PMEStatus- PMEPending-
            Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
            Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
                    Address: 00000000  Data: 0000
            Capabilities: [f4] Power Management version 2
                    Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Kernel driver in use: pcieport
    
    00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
            Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
            Latency: 0
    
    00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
            Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
            Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 128
            Interrupt: pin ? routed to IRQ 16
            Region 0: I/O ports at 01f0 [size=8]
            Region 1: I/O ports at 03f4
            Region 2: I/O ports at 0170 [size=8]
            Region 3: I/O ports at 0374
            Region 4: I/O ports at 1c80 [size=16]
            Capabilities: [58] Power Management version 2
                    Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Kernel driver in use: pata_sis
    
    00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
            Subsystem: Fujitsu Technology Solutions Device [1734:109c]
            Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 173 (13000ns min, 2750ns max)
            Interrupt: pin C routed to IRQ 18
            Region 0: I/O ports at 1400 [size=256]
            Region 1: I/O ports at 1000 [size=128]
            Capabilities: [48] Power Management version 2
                    Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Kernel driver in use: snd_intel8x0
    
    00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
            Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 64 (20000ns max)
            Interrupt: pin A routed to IRQ 20
            Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
            Kernel driver in use: ohci-pci
    
    00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
            Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 64 (20000ns max)
            Interrupt: pin B routed to IRQ 21
            Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
            Kernel driver in use: ohci-pci
    
    00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
            Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 64 (20000ns max)
            Interrupt: pin C routed to IRQ 22
            Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
            Kernel driver in use: ohci-pci
    
    00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
            Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
            Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 64 (20000ns max)
            Interrupt: pin D routed to IRQ 23
            Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
            Capabilities: [50] Power Management version 2
                    Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Kernel driver in use: ehci-pci
    
    00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
            Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
            Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 64
            Interrupt: pin A routed to IRQ 17
            Region 0: I/O ports at 1cb0 [size=8]
            Region 1: I/O ports at 1ca4 [size=4]
            Region 2: I/O ports at 1ca8 [size=8]
            Region 3: I/O ports at 1ca0 [size=4]
            Region 4: I/O ports at 1c90 [size=16]
            Region 5: I/O ports at 1c00 [size=128]
            Capabilities: [58] Power Management version 2
                    Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Kernel driver in use: sata_sis
    
    00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 0, Cache Line Size: 64 bytes
            Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
            Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
            BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
                    PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
            Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
            Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
                    Address: fee0100c  Data: 4181
            Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
                    DevCap: MaxPayload 128 bytes, PhantFunc 0
                            ExtTag+ RBE-
                    DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                            MaxPayload 128 bytes, MaxReadReq 128 bytes
                    DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
                    LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
                            ClockPM- Surprise- LLActRep- BwNot-
                    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
                            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                    LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                    SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
                            Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
                    SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
                            Control: AttnInd Off, PwrInd Off, Power- Interlock-
                    SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
                            Changed: MRL- PresDet- LinkState-
                    RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
                    RootCap: CRSVisible-
                    RootSta: PME ReqID 0000, PMEStatus- PMEPending-
            Capabilities: [f4] Power Management version 2
                    Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Capabilities: [100 v1] Virtual Channel
                    Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
                    Arb:    Fixed- WRR32- WRR64- WRR128-
                    Ctrl:   ArbSelect=Fixed
                    Status: InProgress-
                    VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
                            Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
                            Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
                            Status: NegoPending- InProgress-
            Capabilities: [130 v1] Advanced Error Reporting
                    UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                    UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                    UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                    CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                    CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                    AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
            Kernel driver in use: pcieport
    
    00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
            Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
            Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
            Interrupt: pin A routed to IRQ 19
            Region 0: I/O ports at 1800 [size=256]
            Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
            Capabilities: [dc] Power Management version 2
                    Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Kernel driver in use: r8169
    
    00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
            Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Capabilities: [80] HyperTransport: Host or Secondary Interface
                    Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
                    Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
                    Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
                    Revision ID: 1.02
                    Link Frequency: 800MHz
                    Link Error: <Prot- <Ovfl- <EOC- CTLTm-
                    Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
                    Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
    
    00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
            Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    
    00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
            Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Kernel driver in use: amd64_edac
    
    00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
            Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Kernel driver in use: k8temp
    
    01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
            Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
            Latency: 0, Cache Line Size: 64 bytes
            Interrupt: pin A routed to IRQ 42
            Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
            Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
            Region 4: I/O ports at 2000 [size=256]
            [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
            Capabilities: [50] Power Management version 3
                    Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
                    DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
                            ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                    DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                            MaxPayload 128 bytes, MaxReadReq 128 bytes
                    DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                    LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
                            ClockPM- Surprise- LLActRep- BwNot-
                    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                    LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                    DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
                    DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                    LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
                             Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                             Compliance De-emphasis: -6dB
                    LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
                             EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
            Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
                    Address: 00000000fee0100c  Data: 41e1
            Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
            Kernel driver in use: radeon
    
    01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
            Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 0, Cache Line Size: 64 bytes
            Interrupt: pin B routed to IRQ 41
            Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
            Capabilities: [50] Power Management version 3
                    Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
                    DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
                            ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                    DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                            MaxPayload 128 bytes, MaxReadReq 128 bytes
                    DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                    LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
                            ClockPM- Surprise- LLActRep- BwNot-
                    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                    LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                    DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
                    DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                    LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
                             EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
            Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
                    Address: 00000000fee0100c  Data: 41d1
            Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
            Kernel driver in use: snd_hda_intel


Grüße,
 Thomas

[-- Attachment #2: Type: application/pgp-signature, Size: 489 bytes --]

^ permalink raw reply	[flat|nested] 82+ messages in thread

* radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2014-04-02 14:26     ` Thomas Schwinge
  (?)
@ 2014-04-24 13:37       ` Johannes Weiner
  -1 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2014-04-24 13:37 UTC (permalink / raw)
  To: Thomas Schwinge
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel, Andrew Morton, Alex Deucher,
	Christian König, dri-devel

Hi Thomas,

On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> Hi!
> 
> On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > Each zone that holds userspace pages of one workload must be aged at a
> > speed proportional to the zone size.  [...]
> 
> > Fix this with a very simple round robin allocator.  [...]
> 
> This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> 
> I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> and it started to exhibit "strange" issues, which I then bisected to this
> patch.  I'm not saying that the patch is faulty, as it seems to be
> working fine for everyone else, so I rather assume that something in a
> (vastly?) different corner of the kernel (or my hardware?) is broken.
> ;-)
> 
> The issue is that when X.org/lightdm starts up, there are "garbled"
> section on the screen, for example, rectangular boxes that are just black
> or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> of characters; but not all characters) are displayed as rectangular gray
> or black boxes, and/or icons in a GNOME session are not displayed
> properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> a Linux console, I can use that one fine.  Switching back to X, in the
> majority of all cases, the screen will be completely black, but with the
> mouse cursor still rendered properly (done in hardware, I assume).
> 
> Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> top of v3.12, and everything is back to normal.  The problem also
> persists with a v3.14 kernel that I just built.
> 
> I will try to figure out what's going on, but will gladly take any
> pointers, or suggestions about how to tackle such a problem.
> 
> The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> using that; instead I put in a Sapphire Radeon HD 4350 card.

I went over this code change repeatedly but I could not see anything
directly that would explain it.  However, this patch DOES change the
way allocations are placed (while still respecting zone specifiers
like __GFP_DMA etc.) and so it's possible that they unearthed a
corruption, or a wrongly set dma mask in the drivers.

Ccing the radeon driver guys.  Full quote follows.

>     $ cat < /proc/cpuinfo
>     processor       : 0
>     vendor_id       : AuthenticAMD
>     cpu family      : 15
>     model           : 47
>     model name      : AMD Sempron(tm) Processor 3000+
>     stepping        : 2
>     cpu MHz         : 1000.000
>     cache size      : 128 KB
>     physical id     : 0
>     siblings        : 1
>     core id         : 0
>     cpu cores       : 1
>     apicid          : 0
>     initial apicid  : 0
>     fpu             : yes
>     fpu_exception   : yes
>     cpuid level     : 1
>     wp              : yes
>     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
>     bogomips        : 2000.20
>     TLB size        : 1024 4K pages
>     clflush size    : 64
>     cache_alignment : 64
>     address sizes   : 40 bits physical, 48 bits virtual
>     power management: ts fid vid ttp tm stc
>     $ sudo lspci -nn -k -vv
>     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>             Latency: 64
>             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
>             Capabilities: [a0] AGP version 3.0
>                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
>                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
>             Capabilities: [d0] HyperTransport: Slave or Primary Interface
>                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
>                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
>                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
>                     Revision ID: 1.05
>                     Link Frequency 0: 800MHz
>                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
>                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
>                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
>                     Link Frequency 1: 200MHz
>                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
>                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
>                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
>                     Prefetchable memory behind bridge Upper: 00-00
>                     Bus Number: 00
>             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
>             Capabilities: [5c] HyperTransport: Revision ID: 1.05
>             Kernel driver in use: agpgart-amd64
>     
>     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 0, Cache Line Size: 64 bytes
>             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
>             I/O behind bridge: 00002000-00002fff
>             Memory behind bridge: f2100000-f21fffff
>             Prefetchable memory behind bridge: e0000000-efffffff
>             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
>             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
>                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
>                     DevCap: MaxPayload 128 bytes, PhantFunc 0
>                             ExtTag+ RBE-
>                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>                             MaxPayload 128 bytes, MaxReadReq 128 bytes
>                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
>                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
>                             ClockPM- Surprise- LLActRep+ BwNot-
>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
>                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
>                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
>                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
>                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
>                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
>                             Changed: MRL- PresDet- LinkState-
>                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
>                     RootCap: CRSVisible-
>                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
>             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
>             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
>                     Address: 00000000  Data: 0000
>             Capabilities: [f4] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: pcieport
>     
>     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
>             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>             Latency: 0
>     
>     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 128
>             Interrupt: pin ? routed to IRQ 16
>             Region 0: I/O ports at 01f0 [size=8]
>             Region 1: I/O ports at 03f4
>             Region 2: I/O ports at 0170 [size=8]
>             Region 3: I/O ports at 0374
>             Region 4: I/O ports at 1c80 [size=16]
>             Capabilities: [58] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: pata_sis
>     
>     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
>             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
>             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 173 (13000ns min, 2750ns max)
>             Interrupt: pin C routed to IRQ 18
>             Region 0: I/O ports at 1400 [size=256]
>             Region 1: I/O ports at 1000 [size=128]
>             Capabilities: [48] Power Management version 2
>                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: snd_intel8x0
>     
>     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (20000ns max)
>             Interrupt: pin A routed to IRQ 20
>             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
>             Kernel driver in use: ohci-pci
>     
>     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (20000ns max)
>             Interrupt: pin B routed to IRQ 21
>             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
>             Kernel driver in use: ohci-pci
>     
>     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (20000ns max)
>             Interrupt: pin C routed to IRQ 22
>             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
>             Kernel driver in use: ohci-pci
>     
>     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
>             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (20000ns max)
>             Interrupt: pin D routed to IRQ 23
>             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
>             Capabilities: [50] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: ehci-pci
>     
>     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
>             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64
>             Interrupt: pin A routed to IRQ 17
>             Region 0: I/O ports at 1cb0 [size=8]
>             Region 1: I/O ports at 1ca4 [size=4]
>             Region 2: I/O ports at 1ca8 [size=8]
>             Region 3: I/O ports at 1ca0 [size=4]
>             Region 4: I/O ports at 1c90 [size=16]
>             Region 5: I/O ports at 1c00 [size=128]
>             Capabilities: [58] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: sata_sis
>     
>     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 0, Cache Line Size: 64 bytes
>             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
>             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
>             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
>                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
>             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
>                     Address: fee0100c  Data: 4181
>             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
>                     DevCap: MaxPayload 128 bytes, PhantFunc 0
>                             ExtTag+ RBE-
>                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>                             MaxPayload 128 bytes, MaxReadReq 128 bytes
>                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
>                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
>                             ClockPM- Surprise- LLActRep- BwNot-
>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
>                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
>                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
>                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
>                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
>                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
>                             Changed: MRL- PresDet- LinkState-
>                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
>                     RootCap: CRSVisible-
>                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
>             Capabilities: [f4] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Capabilities: [100 v1] Virtual Channel
>                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
>                     Arb:    Fixed- WRR32- WRR64- WRR128-
>                     Ctrl:   ArbSelect=Fixed
>                     Status: InProgress-
>                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
>                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
>                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
>                             Status: NegoPending- InProgress-
>             Capabilities: [130 v1] Advanced Error Reporting
>                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
>                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
>             Kernel driver in use: pcieport
>     
>     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
>             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
>             Interrupt: pin A routed to IRQ 19
>             Region 0: I/O ports at 1800 [size=256]
>             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
>             Capabilities: [dc] Power Management version 2
>                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: r8169
>     
>     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
>             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Capabilities: [80] HyperTransport: Host or Secondary Interface
>                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
>                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
>                     Revision ID: 1.02
>                     Link Frequency: 800MHz
>                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
>                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
>                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
>     
>     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
>             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>     
>     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
>             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Kernel driver in use: amd64_edac
>     
>     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
>             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Kernel driver in use: k8temp
>     
>     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
>             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>             Latency: 0, Cache Line Size: 64 bytes
>             Interrupt: pin A routed to IRQ 42
>             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
>             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
>             Region 4: I/O ports at 2000 [size=256]
>             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
>             Capabilities: [50] Power Management version 3
>                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
>                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
>                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
>                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>                             MaxPayload 128 bytes, MaxReadReq 128 bytes
>                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
>                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
>                             ClockPM- Surprise- LLActRep- BwNot-
>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
>                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
>                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
>                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
>                              Compliance De-emphasis: -6dB
>                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
>                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
>             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
>                     Address: 00000000fee0100c  Data: 41e1
>             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
>             Kernel driver in use: radeon
>     
>     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
>             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 0, Cache Line Size: 64 bytes
>             Interrupt: pin B routed to IRQ 41
>             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
>             Capabilities: [50] Power Management version 3
>                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
>                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
>                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
>                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>                             MaxPayload 128 bytes, MaxReadReq 128 bytes
>                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
>                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
>                             ClockPM- Surprise- LLActRep- BwNot-
>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
>                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
>                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
>                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
>             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
>                     Address: 00000000fee0100c  Data: 41d1
>             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
>             Kernel driver in use: snd_hda_intel
> 
> 
> Grüße,
>  Thomas



^ permalink raw reply	[flat|nested] 82+ messages in thread

* radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-24 13:37       ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2014-04-24 13:37 UTC (permalink / raw)
  To: Thomas Schwinge
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel, Andrew Morton, Alex Deucher,
	Christian König, dri-devel

Hi Thomas,

On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> Hi!
> 
> On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > Each zone that holds userspace pages of one workload must be aged at a
> > speed proportional to the zone size.  [...]
> 
> > Fix this with a very simple round robin allocator.  [...]
> 
> This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> 
> I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> and it started to exhibit "strange" issues, which I then bisected to this
> patch.  I'm not saying that the patch is faulty, as it seems to be
> working fine for everyone else, so I rather assume that something in a
> (vastly?) different corner of the kernel (or my hardware?) is broken.
> ;-)
> 
> The issue is that when X.org/lightdm starts up, there are "garbled"
> section on the screen, for example, rectangular boxes that are just black
> or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> of characters; but not all characters) are displayed as rectangular gray
> or black boxes, and/or icons in a GNOME session are not displayed
> properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> a Linux console, I can use that one fine.  Switching back to X, in the
> majority of all cases, the screen will be completely black, but with the
> mouse cursor still rendered properly (done in hardware, I assume).
> 
> Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> top of v3.12, and everything is back to normal.  The problem also
> persists with a v3.14 kernel that I just built.
> 
> I will try to figure out what's going on, but will gladly take any
> pointers, or suggestions about how to tackle such a problem.
> 
> The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> using that; instead I put in a Sapphire Radeon HD 4350 card.

I went over this code change repeatedly but I could not see anything
directly that would explain it.  However, this patch DOES change the
way allocations are placed (while still respecting zone specifiers
like __GFP_DMA etc.) and so it's possible that they unearthed a
corruption, or a wrongly set dma mask in the drivers.

Ccing the radeon driver guys.  Full quote follows.

>     $ cat < /proc/cpuinfo
>     processor       : 0
>     vendor_id       : AuthenticAMD
>     cpu family      : 15
>     model           : 47
>     model name      : AMD Sempron(tm) Processor 3000+
>     stepping        : 2
>     cpu MHz         : 1000.000
>     cache size      : 128 KB
>     physical id     : 0
>     siblings        : 1
>     core id         : 0
>     cpu cores       : 1
>     apicid          : 0
>     initial apicid  : 0
>     fpu             : yes
>     fpu_exception   : yes
>     cpuid level     : 1
>     wp              : yes
>     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
>     bogomips        : 2000.20
>     TLB size        : 1024 4K pages
>     clflush size    : 64
>     cache_alignment : 64
>     address sizes   : 40 bits physical, 48 bits virtual
>     power management: ts fid vid ttp tm stc
>     $ sudo lspci -nn -k -vv
>     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>             Latency: 64
>             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
>             Capabilities: [a0] AGP version 3.0
>                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
>                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
>             Capabilities: [d0] HyperTransport: Slave or Primary Interface
>                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
>                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
>                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
>                     Revision ID: 1.05
>                     Link Frequency 0: 800MHz
>                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
>                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
>                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
>                     Link Frequency 1: 200MHz
>                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
>                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
>                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
>                     Prefetchable memory behind bridge Upper: 00-00
>                     Bus Number: 00
>             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
>             Capabilities: [5c] HyperTransport: Revision ID: 1.05
>             Kernel driver in use: agpgart-amd64
>     
>     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 0, Cache Line Size: 64 bytes
>             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
>             I/O behind bridge: 00002000-00002fff
>             Memory behind bridge: f2100000-f21fffff
>             Prefetchable memory behind bridge: e0000000-efffffff
>             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
>             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
>                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
>                     DevCap: MaxPayload 128 bytes, PhantFunc 0
>                             ExtTag+ RBE-
>                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>                             MaxPayload 128 bytes, MaxReadReq 128 bytes
>                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
>                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
>                             ClockPM- Surprise- LLActRep+ BwNot-
>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
>                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
>                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
>                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
>                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
>                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
>                             Changed: MRL- PresDet- LinkState-
>                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
>                     RootCap: CRSVisible-
>                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
>             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
>             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
>                     Address: 00000000  Data: 0000
>             Capabilities: [f4] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: pcieport
>     
>     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
>             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>             Latency: 0
>     
>     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 128
>             Interrupt: pin ? routed to IRQ 16
>             Region 0: I/O ports at 01f0 [size=8]
>             Region 1: I/O ports at 03f4
>             Region 2: I/O ports at 0170 [size=8]
>             Region 3: I/O ports at 0374
>             Region 4: I/O ports at 1c80 [size=16]
>             Capabilities: [58] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: pata_sis
>     
>     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
>             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
>             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 173 (13000ns min, 2750ns max)
>             Interrupt: pin C routed to IRQ 18
>             Region 0: I/O ports at 1400 [size=256]
>             Region 1: I/O ports at 1000 [size=128]
>             Capabilities: [48] Power Management version 2
>                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: snd_intel8x0
>     
>     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (20000ns max)
>             Interrupt: pin A routed to IRQ 20
>             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
>             Kernel driver in use: ohci-pci
>     
>     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (20000ns max)
>             Interrupt: pin B routed to IRQ 21
>             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
>             Kernel driver in use: ohci-pci
>     
>     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (20000ns max)
>             Interrupt: pin C routed to IRQ 22
>             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
>             Kernel driver in use: ohci-pci
>     
>     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
>             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (20000ns max)
>             Interrupt: pin D routed to IRQ 23
>             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
>             Capabilities: [50] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: ehci-pci
>     
>     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
>             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64
>             Interrupt: pin A routed to IRQ 17
>             Region 0: I/O ports at 1cb0 [size=8]
>             Region 1: I/O ports at 1ca4 [size=4]
>             Region 2: I/O ports at 1ca8 [size=8]
>             Region 3: I/O ports at 1ca0 [size=4]
>             Region 4: I/O ports at 1c90 [size=16]
>             Region 5: I/O ports at 1c00 [size=128]
>             Capabilities: [58] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: sata_sis
>     
>     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 0, Cache Line Size: 64 bytes
>             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
>             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
>             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
>                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
>             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
>                     Address: fee0100c  Data: 4181
>             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
>                     DevCap: MaxPayload 128 bytes, PhantFunc 0
>                             ExtTag+ RBE-
>                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>                             MaxPayload 128 bytes, MaxReadReq 128 bytes
>                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
>                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
>                             ClockPM- Surprise- LLActRep- BwNot-
>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
>                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
>                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
>                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
>                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
>                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
>                             Changed: MRL- PresDet- LinkState-
>                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
>                     RootCap: CRSVisible-
>                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
>             Capabilities: [f4] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Capabilities: [100 v1] Virtual Channel
>                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
>                     Arb:    Fixed- WRR32- WRR64- WRR128-
>                     Ctrl:   ArbSelect=Fixed
>                     Status: InProgress-
>                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
>                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
>                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
>                             Status: NegoPending- InProgress-
>             Capabilities: [130 v1] Advanced Error Reporting
>                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
>                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
>             Kernel driver in use: pcieport
>     
>     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
>             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
>             Interrupt: pin A routed to IRQ 19
>             Region 0: I/O ports at 1800 [size=256]
>             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
>             Capabilities: [dc] Power Management version 2
>                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: r8169
>     
>     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
>             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Capabilities: [80] HyperTransport: Host or Secondary Interface
>                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
>                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
>                     Revision ID: 1.02
>                     Link Frequency: 800MHz
>                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
>                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
>                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
>     
>     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
>             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>     
>     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
>             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Kernel driver in use: amd64_edac
>     
>     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
>             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Kernel driver in use: k8temp
>     
>     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
>             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>             Latency: 0, Cache Line Size: 64 bytes
>             Interrupt: pin A routed to IRQ 42
>             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
>             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
>             Region 4: I/O ports at 2000 [size=256]
>             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
>             Capabilities: [50] Power Management version 3
>                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
>                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
>                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
>                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>                             MaxPayload 128 bytes, MaxReadReq 128 bytes
>                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
>                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
>                             ClockPM- Surprise- LLActRep- BwNot-
>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
>                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
>                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
>                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
>                              Compliance De-emphasis: -6dB
>                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
>                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
>             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
>                     Address: 00000000fee0100c  Data: 41e1
>             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
>             Kernel driver in use: radeon
>     
>     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
>             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 0, Cache Line Size: 64 bytes
>             Interrupt: pin B routed to IRQ 41
>             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
>             Capabilities: [50] Power Management version 3
>                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
>                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
>                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
>                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>                             MaxPayload 128 bytes, MaxReadReq 128 bytes
>                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
>                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
>                             ClockPM- Surprise- LLActRep- BwNot-
>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
>                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
>                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
>                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
>             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
>                     Address: 00000000fee0100c  Data: 41d1
>             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
>             Kernel driver in use: snd_hda_intel
> 
> 
> Grusse,
>  Thomas


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-24 13:37       ` Johannes Weiner
  0 siblings, 0 replies; 82+ messages in thread
From: Johannes Weiner @ 2014-04-24 13:37 UTC (permalink / raw)
  To: Thomas Schwinge
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel, Andrew Morton, Alex Deucher,
	Christian König, dri-devel

Hi Thomas,

On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> Hi!
> 
> On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > Each zone that holds userspace pages of one workload must be aged at a
> > speed proportional to the zone size.  [...]
> 
> > Fix this with a very simple round robin allocator.  [...]
> 
> This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> 
> I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> and it started to exhibit "strange" issues, which I then bisected to this
> patch.  I'm not saying that the patch is faulty, as it seems to be
> working fine for everyone else, so I rather assume that something in a
> (vastly?) different corner of the kernel (or my hardware?) is broken.
> ;-)
> 
> The issue is that when X.org/lightdm starts up, there are "garbled"
> section on the screen, for example, rectangular boxes that are just black
> or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> of characters; but not all characters) are displayed as rectangular gray
> or black boxes, and/or icons in a GNOME session are not displayed
> properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> a Linux console, I can use that one fine.  Switching back to X, in the
> majority of all cases, the screen will be completely black, but with the
> mouse cursor still rendered properly (done in hardware, I assume).
> 
> Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> top of v3.12, and everything is back to normal.  The problem also
> persists with a v3.14 kernel that I just built.
> 
> I will try to figure out what's going on, but will gladly take any
> pointers, or suggestions about how to tackle such a problem.
> 
> The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> using that; instead I put in a Sapphire Radeon HD 4350 card.

I went over this code change repeatedly but I could not see anything
directly that would explain it.  However, this patch DOES change the
way allocations are placed (while still respecting zone specifiers
like __GFP_DMA etc.) and so it's possible that they unearthed a
corruption, or a wrongly set dma mask in the drivers.

Ccing the radeon driver guys.  Full quote follows.

>     $ cat < /proc/cpuinfo
>     processor       : 0
>     vendor_id       : AuthenticAMD
>     cpu family      : 15
>     model           : 47
>     model name      : AMD Sempron(tm) Processor 3000+
>     stepping        : 2
>     cpu MHz         : 1000.000
>     cache size      : 128 KB
>     physical id     : 0
>     siblings        : 1
>     core id         : 0
>     cpu cores       : 1
>     apicid          : 0
>     initial apicid  : 0
>     fpu             : yes
>     fpu_exception   : yes
>     cpuid level     : 1
>     wp              : yes
>     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
>     bogomips        : 2000.20
>     TLB size        : 1024 4K pages
>     clflush size    : 64
>     cache_alignment : 64
>     address sizes   : 40 bits physical, 48 bits virtual
>     power management: ts fid vid ttp tm stc
>     $ sudo lspci -nn -k -vv
>     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>             Latency: 64
>             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
>             Capabilities: [a0] AGP version 3.0
>                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
>                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
>             Capabilities: [d0] HyperTransport: Slave or Primary Interface
>                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
>                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
>                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
>                     Revision ID: 1.05
>                     Link Frequency 0: 800MHz
>                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
>                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
>                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
>                     Link Frequency 1: 200MHz
>                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
>                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
>                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
>                     Prefetchable memory behind bridge Upper: 00-00
>                     Bus Number: 00
>             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
>             Capabilities: [5c] HyperTransport: Revision ID: 1.05
>             Kernel driver in use: agpgart-amd64
>     
>     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 0, Cache Line Size: 64 bytes
>             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
>             I/O behind bridge: 00002000-00002fff
>             Memory behind bridge: f2100000-f21fffff
>             Prefetchable memory behind bridge: e0000000-efffffff
>             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
>             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
>                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
>                     DevCap: MaxPayload 128 bytes, PhantFunc 0
>                             ExtTag+ RBE-
>                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>                             MaxPayload 128 bytes, MaxReadReq 128 bytes
>                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
>                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
>                             ClockPM- Surprise- LLActRep+ BwNot-
>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
>                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
>                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
>                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
>                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
>                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
>                             Changed: MRL- PresDet- LinkState-
>                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
>                     RootCap: CRSVisible-
>                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
>             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
>             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
>                     Address: 00000000  Data: 0000
>             Capabilities: [f4] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: pcieport
>     
>     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
>             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>             Latency: 0
>     
>     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 128
>             Interrupt: pin ? routed to IRQ 16
>             Region 0: I/O ports at 01f0 [size=8]
>             Region 1: I/O ports at 03f4
>             Region 2: I/O ports at 0170 [size=8]
>             Region 3: I/O ports at 0374
>             Region 4: I/O ports at 1c80 [size=16]
>             Capabilities: [58] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: pata_sis
>     
>     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
>             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
>             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 173 (13000ns min, 2750ns max)
>             Interrupt: pin C routed to IRQ 18
>             Region 0: I/O ports at 1400 [size=256]
>             Region 1: I/O ports at 1000 [size=128]
>             Capabilities: [48] Power Management version 2
>                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: snd_intel8x0
>     
>     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (20000ns max)
>             Interrupt: pin A routed to IRQ 20
>             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
>             Kernel driver in use: ohci-pci
>     
>     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (20000ns max)
>             Interrupt: pin B routed to IRQ 21
>             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
>             Kernel driver in use: ohci-pci
>     
>     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (20000ns max)
>             Interrupt: pin C routed to IRQ 22
>             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
>             Kernel driver in use: ohci-pci
>     
>     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
>             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (20000ns max)
>             Interrupt: pin D routed to IRQ 23
>             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
>             Capabilities: [50] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: ehci-pci
>     
>     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
>             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
>             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64
>             Interrupt: pin A routed to IRQ 17
>             Region 0: I/O ports at 1cb0 [size=8]
>             Region 1: I/O ports at 1ca4 [size=4]
>             Region 2: I/O ports at 1ca8 [size=8]
>             Region 3: I/O ports at 1ca0 [size=4]
>             Region 4: I/O ports at 1c90 [size=16]
>             Region 5: I/O ports at 1c00 [size=128]
>             Capabilities: [58] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: sata_sis
>     
>     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 0, Cache Line Size: 64 bytes
>             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
>             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
>             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
>                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
>             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
>                     Address: fee0100c  Data: 4181
>             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
>                     DevCap: MaxPayload 128 bytes, PhantFunc 0
>                             ExtTag+ RBE-
>                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>                             MaxPayload 128 bytes, MaxReadReq 128 bytes
>                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
>                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
>                             ClockPM- Surprise- LLActRep- BwNot-
>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
>                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
>                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
>                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
>                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
>                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
>                             Changed: MRL- PresDet- LinkState-
>                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
>                     RootCap: CRSVisible-
>                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
>             Capabilities: [f4] Power Management version 2
>                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Capabilities: [100 v1] Virtual Channel
>                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
>                     Arb:    Fixed- WRR32- WRR64- WRR128-
>                     Ctrl:   ArbSelect=Fixed
>                     Status: InProgress-
>                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
>                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
>                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
>                             Status: NegoPending- InProgress-
>             Capabilities: [130 v1] Advanced Error Reporting
>                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
>                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
>             Kernel driver in use: pcieport
>     
>     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
>             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
>             Interrupt: pin A routed to IRQ 19
>             Region 0: I/O ports at 1800 [size=256]
>             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
>             Capabilities: [dc] Power Management version 2
>                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Kernel driver in use: r8169
>     
>     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
>             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Capabilities: [80] HyperTransport: Host or Secondary Interface
>                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
>                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
>                     Revision ID: 1.02
>                     Link Frequency: 800MHz
>                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
>                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
>                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
>     
>     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
>             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>     
>     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
>             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Kernel driver in use: amd64_edac
>     
>     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
>             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Kernel driver in use: k8temp
>     
>     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
>             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>             Latency: 0, Cache Line Size: 64 bytes
>             Interrupt: pin A routed to IRQ 42
>             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
>             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
>             Region 4: I/O ports at 2000 [size=256]
>             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
>             Capabilities: [50] Power Management version 3
>                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
>                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
>                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
>                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>                             MaxPayload 128 bytes, MaxReadReq 128 bytes
>                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
>                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
>                             ClockPM- Surprise- LLActRep- BwNot-
>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
>                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
>                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
>                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
>                              Compliance De-emphasis: -6dB
>                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
>                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
>             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
>                     Address: 00000000fee0100c  Data: 41e1
>             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
>             Kernel driver in use: radeon
>     
>     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
>             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
>             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
>             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>             Latency: 0, Cache Line Size: 64 bytes
>             Interrupt: pin B routed to IRQ 41
>             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
>             Capabilities: [50] Power Management version 3
>                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
>                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
>                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
>                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>                             MaxPayload 128 bytes, MaxReadReq 128 bytes
>                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
>                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
>                             ClockPM- Surprise- LLActRep- BwNot-
>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
>                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
>                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
>                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
>             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
>                     Address: 00000000fee0100c  Data: 41d1
>             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
>             Kernel driver in use: snd_hda_intel
> 
> 
> Grüße,
>  Thomas


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2014-04-24 13:37       ` Johannes Weiner
  (?)
@ 2014-04-25 21:47         ` Jerome Glisse
  -1 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-25 21:47 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Thomas Schwinge, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel,
	Andrew Morton, Alex Deucher, Christian König, dri-devel

On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> Hi Thomas,
> 
> On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > Hi!
> > 
> > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > Each zone that holds userspace pages of one workload must be aged at a
> > > speed proportional to the zone size.  [...]
> > 
> > > Fix this with a very simple round robin allocator.  [...]
> > 
> > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > 
> > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > and it started to exhibit "strange" issues, which I then bisected to this
> > patch.  I'm not saying that the patch is faulty, as it seems to be
> > working fine for everyone else, so I rather assume that something in a
> > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > ;-)
> > 
> > The issue is that when X.org/lightdm starts up, there are "garbled"
> > section on the screen, for example, rectangular boxes that are just black
> > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > of characters; but not all characters) are displayed as rectangular gray
> > or black boxes, and/or icons in a GNOME session are not displayed
> > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > a Linux console, I can use that one fine.  Switching back to X, in the
> > majority of all cases, the screen will be completely black, but with the
> > mouse cursor still rendered properly (done in hardware, I assume).
> > 
> > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > top of v3.12, and everything is back to normal.  The problem also
> > persists with a v3.14 kernel that I just built.
> > 
> > I will try to figure out what's going on, but will gladly take any
> > pointers, or suggestions about how to tackle such a problem.
> > 
> > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > using that; instead I put in a Sapphire Radeon HD 4350 card.
> 
> I went over this code change repeatedly but I could not see anything
> directly that would explain it.  However, this patch DOES change the
> way allocations are placed (while still respecting zone specifiers
> like __GFP_DMA etc.) and so it's possible that they unearthed a
> corruption, or a wrongly set dma mask in the drivers.
> 
> Ccing the radeon driver guys.  Full quote follows.

Can we get a full dmesg, to know if thing like IOMMU are enabled or not.
This is even more puzzling as rv710 has 40bit dma mask iirc and thus you
should be fine even without IOMMU. But given the patch you point to, it
really can only be something that allocate page in place the GPU fails
to access.

Thomas how much memory do you have (again dmes will also provide mapping
informations) ?

My guess is that the pcie bridge can only remap dma page with 32bit dma
mask while the gpu is fine with 40bit dma mask. I always thought that the
pcie/pci code did take care of such thing for us.

Cheers,
Jérôme Glisse

> 
> >     $ cat < /proc/cpuinfo
> >     processor       : 0
> >     vendor_id       : AuthenticAMD
> >     cpu family      : 15
> >     model           : 47
> >     model name      : AMD Sempron(tm) Processor 3000+
> >     stepping        : 2
> >     cpu MHz         : 1000.000
> >     cache size      : 128 KB
> >     physical id     : 0
> >     siblings        : 1
> >     core id         : 0
> >     cpu cores       : 1
> >     apicid          : 0
> >     initial apicid  : 0
> >     fpu             : yes
> >     fpu_exception   : yes
> >     cpuid level     : 1
> >     wp              : yes
> >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> >     bogomips        : 2000.20
> >     TLB size        : 1024 4K pages
> >     clflush size    : 64
> >     cache_alignment : 64
> >     address sizes   : 40 bits physical, 48 bits virtual
> >     power management: ts fid vid ttp tm stc
> >     $ sudo lspci -nn -k -vv
> >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 64
> >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> >             Capabilities: [a0] AGP version 3.0
> >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> >                     Revision ID: 1.05
> >                     Link Frequency 0: 800MHz
> >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> >                     Link Frequency 1: 200MHz
> >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> >                     Prefetchable memory behind bridge Upper: 00-00
> >                     Bus Number: 00
> >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> >             Kernel driver in use: agpgart-amd64
> >     
> >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> >             I/O behind bridge: 00002000-00002fff
> >             Memory behind bridge: f2100000-f21fffff
> >             Prefetchable memory behind bridge: e0000000-efffffff
> >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> >                             ExtTag+ RBE-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> >                             ClockPM- Surprise- LLActRep+ BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> >                             Changed: MRL- PresDet- LinkState-
> >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> >                     RootCap: CRSVisible-
> >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> >                     Address: 00000000  Data: 0000
> >             Capabilities: [f4] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: pcieport
> >     
> >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 0
> >     
> >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 128
> >             Interrupt: pin ? routed to IRQ 16
> >             Region 0: I/O ports at 01f0 [size=8]
> >             Region 1: I/O ports at 03f4
> >             Region 2: I/O ports at 0170 [size=8]
> >             Region 3: I/O ports at 0374
> >             Region 4: I/O ports at 1c80 [size=16]
> >             Capabilities: [58] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: pata_sis
> >     
> >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 173 (13000ns min, 2750ns max)
> >             Interrupt: pin C routed to IRQ 18
> >             Region 0: I/O ports at 1400 [size=256]
> >             Region 1: I/O ports at 1000 [size=128]
> >             Capabilities: [48] Power Management version 2
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: snd_intel8x0
> >     
> >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin A routed to IRQ 20
> >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin B routed to IRQ 21
> >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin C routed to IRQ 22
> >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin D routed to IRQ 23
> >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> >             Capabilities: [50] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: ehci-pci
> >     
> >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64
> >             Interrupt: pin A routed to IRQ 17
> >             Region 0: I/O ports at 1cb0 [size=8]
> >             Region 1: I/O ports at 1ca4 [size=4]
> >             Region 2: I/O ports at 1ca8 [size=8]
> >             Region 3: I/O ports at 1ca0 [size=4]
> >             Region 4: I/O ports at 1c90 [size=16]
> >             Region 5: I/O ports at 1c00 [size=128]
> >             Capabilities: [58] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: sata_sis
> >     
> >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> >                     Address: fee0100c  Data: 4181
> >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> >                             ExtTag+ RBE-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> >                             Changed: MRL- PresDet- LinkState-
> >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> >                     RootCap: CRSVisible-
> >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >             Capabilities: [f4] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [100 v1] Virtual Channel
> >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> >                     Ctrl:   ArbSelect=Fixed
> >                     Status: InProgress-
> >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> >                             Status: NegoPending- InProgress-
> >             Capabilities: [130 v1] Advanced Error Reporting
> >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> >             Kernel driver in use: pcieport
> >     
> >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> >             Interrupt: pin A routed to IRQ 19
> >             Region 0: I/O ports at 1800 [size=256]
> >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> >             Capabilities: [dc] Power Management version 2
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: r8169
> >     
> >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >                     Revision ID: 1.02
> >                     Link Frequency: 800MHz
> >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> >     
> >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >     
> >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Kernel driver in use: amd64_edac
> >     
> >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Kernel driver in use: k8temp
> >     
> >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Interrupt: pin A routed to IRQ 42
> >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> >             Region 4: I/O ports at 2000 [size=256]
> >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> >             Capabilities: [50] Power Management version 3
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> >                              Compliance De-emphasis: -6dB
> >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >                     Address: 00000000fee0100c  Data: 41e1
> >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> >             Kernel driver in use: radeon
> >     
> >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Interrupt: pin B routed to IRQ 41
> >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> >             Capabilities: [50] Power Management version 3
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >                     Address: 00000000fee0100c  Data: 41d1
> >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> >             Kernel driver in use: snd_hda_intel
> > 
> > 
> > Grüße,
> >  Thomas
> 
> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-25 21:47         ` Jerome Glisse
  0 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-25 21:47 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Thomas Schwinge, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel,
	Andrew Morton, Alex Deucher, Christian König, dri-devel

On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> Hi Thomas,
> 
> On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > Hi!
> > 
> > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > Each zone that holds userspace pages of one workload must be aged at a
> > > speed proportional to the zone size.  [...]
> > 
> > > Fix this with a very simple round robin allocator.  [...]
> > 
> > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > 
> > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > and it started to exhibit "strange" issues, which I then bisected to this
> > patch.  I'm not saying that the patch is faulty, as it seems to be
> > working fine for everyone else, so I rather assume that something in a
> > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > ;-)
> > 
> > The issue is that when X.org/lightdm starts up, there are "garbled"
> > section on the screen, for example, rectangular boxes that are just black
> > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > of characters; but not all characters) are displayed as rectangular gray
> > or black boxes, and/or icons in a GNOME session are not displayed
> > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > a Linux console, I can use that one fine.  Switching back to X, in the
> > majority of all cases, the screen will be completely black, but with the
> > mouse cursor still rendered properly (done in hardware, I assume).
> > 
> > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > top of v3.12, and everything is back to normal.  The problem also
> > persists with a v3.14 kernel that I just built.
> > 
> > I will try to figure out what's going on, but will gladly take any
> > pointers, or suggestions about how to tackle such a problem.
> > 
> > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > using that; instead I put in a Sapphire Radeon HD 4350 card.
> 
> I went over this code change repeatedly but I could not see anything
> directly that would explain it.  However, this patch DOES change the
> way allocations are placed (while still respecting zone specifiers
> like __GFP_DMA etc.) and so it's possible that they unearthed a
> corruption, or a wrongly set dma mask in the drivers.
> 
> Ccing the radeon driver guys.  Full quote follows.

Can we get a full dmesg, to know if thing like IOMMU are enabled or not.
This is even more puzzling as rv710 has 40bit dma mask iirc and thus you
should be fine even without IOMMU. But given the patch you point to, it
really can only be something that allocate page in place the GPU fails
to access.

Thomas how much memory do you have (again dmes will also provide mapping
informations) ?

My guess is that the pcie bridge can only remap dma page with 32bit dma
mask while the gpu is fine with 40bit dma mask. I always thought that the
pcie/pci code did take care of such thing for us.

Cheers,
Jerome Glisse

> 
> >     $ cat < /proc/cpuinfo
> >     processor       : 0
> >     vendor_id       : AuthenticAMD
> >     cpu family      : 15
> >     model           : 47
> >     model name      : AMD Sempron(tm) Processor 3000+
> >     stepping        : 2
> >     cpu MHz         : 1000.000
> >     cache size      : 128 KB
> >     physical id     : 0
> >     siblings        : 1
> >     core id         : 0
> >     cpu cores       : 1
> >     apicid          : 0
> >     initial apicid  : 0
> >     fpu             : yes
> >     fpu_exception   : yes
> >     cpuid level     : 1
> >     wp              : yes
> >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> >     bogomips        : 2000.20
> >     TLB size        : 1024 4K pages
> >     clflush size    : 64
> >     cache_alignment : 64
> >     address sizes   : 40 bits physical, 48 bits virtual
> >     power management: ts fid vid ttp tm stc
> >     $ sudo lspci -nn -k -vv
> >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 64
> >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> >             Capabilities: [a0] AGP version 3.0
> >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> >                     Revision ID: 1.05
> >                     Link Frequency 0: 800MHz
> >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> >                     Link Frequency 1: 200MHz
> >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> >                     Prefetchable memory behind bridge Upper: 00-00
> >                     Bus Number: 00
> >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> >             Kernel driver in use: agpgart-amd64
> >     
> >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> >             I/O behind bridge: 00002000-00002fff
> >             Memory behind bridge: f2100000-f21fffff
> >             Prefetchable memory behind bridge: e0000000-efffffff
> >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> >                             ExtTag+ RBE-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> >                             ClockPM- Surprise- LLActRep+ BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> >                             Changed: MRL- PresDet- LinkState-
> >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> >                     RootCap: CRSVisible-
> >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> >                     Address: 00000000  Data: 0000
> >             Capabilities: [f4] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: pcieport
> >     
> >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 0
> >     
> >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 128
> >             Interrupt: pin ? routed to IRQ 16
> >             Region 0: I/O ports at 01f0 [size=8]
> >             Region 1: I/O ports at 03f4
> >             Region 2: I/O ports at 0170 [size=8]
> >             Region 3: I/O ports at 0374
> >             Region 4: I/O ports at 1c80 [size=16]
> >             Capabilities: [58] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: pata_sis
> >     
> >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 173 (13000ns min, 2750ns max)
> >             Interrupt: pin C routed to IRQ 18
> >             Region 0: I/O ports at 1400 [size=256]
> >             Region 1: I/O ports at 1000 [size=128]
> >             Capabilities: [48] Power Management version 2
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: snd_intel8x0
> >     
> >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin A routed to IRQ 20
> >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin B routed to IRQ 21
> >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin C routed to IRQ 22
> >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin D routed to IRQ 23
> >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> >             Capabilities: [50] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: ehci-pci
> >     
> >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64
> >             Interrupt: pin A routed to IRQ 17
> >             Region 0: I/O ports at 1cb0 [size=8]
> >             Region 1: I/O ports at 1ca4 [size=4]
> >             Region 2: I/O ports at 1ca8 [size=8]
> >             Region 3: I/O ports at 1ca0 [size=4]
> >             Region 4: I/O ports at 1c90 [size=16]
> >             Region 5: I/O ports at 1c00 [size=128]
> >             Capabilities: [58] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: sata_sis
> >     
> >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> >                     Address: fee0100c  Data: 4181
> >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> >                             ExtTag+ RBE-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> >                             Changed: MRL- PresDet- LinkState-
> >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> >                     RootCap: CRSVisible-
> >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >             Capabilities: [f4] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [100 v1] Virtual Channel
> >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> >                     Ctrl:   ArbSelect=Fixed
> >                     Status: InProgress-
> >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> >                             Status: NegoPending- InProgress-
> >             Capabilities: [130 v1] Advanced Error Reporting
> >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> >             Kernel driver in use: pcieport
> >     
> >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> >             Interrupt: pin A routed to IRQ 19
> >             Region 0: I/O ports at 1800 [size=256]
> >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> >             Capabilities: [dc] Power Management version 2
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: r8169
> >     
> >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >                     Revision ID: 1.02
> >                     Link Frequency: 800MHz
> >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> >     
> >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >     
> >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Kernel driver in use: amd64_edac
> >     
> >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Kernel driver in use: k8temp
> >     
> >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Interrupt: pin A routed to IRQ 42
> >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> >             Region 4: I/O ports at 2000 [size=256]
> >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> >             Capabilities: [50] Power Management version 3
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> >                              Compliance De-emphasis: -6dB
> >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >                     Address: 00000000fee0100c  Data: 41e1
> >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> >             Kernel driver in use: radeon
> >     
> >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Interrupt: pin B routed to IRQ 41
> >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> >             Capabilities: [50] Power Management version 3
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >                     Address: 00000000fee0100c  Data: 41d1
> >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> >             Kernel driver in use: snd_hda_intel
> > 
> > 
> > Grusse,
> >  Thomas
> 
> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-25 21:47         ` Jerome Glisse
  0 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-25 21:47 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrea Arcangeli, Rik van Riel, Zlatko Calusic, linux-kernel,
	dri-devel, Christian König, linux-mm, Minchan Kim,
	Mel Gorman, Alex Deucher, Andrew Morton, Thomas Schwinge

On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> Hi Thomas,
> 
> On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > Hi!
> > 
> > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > Each zone that holds userspace pages of one workload must be aged at a
> > > speed proportional to the zone size.  [...]
> > 
> > > Fix this with a very simple round robin allocator.  [...]
> > 
> > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > 
> > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > and it started to exhibit "strange" issues, which I then bisected to this
> > patch.  I'm not saying that the patch is faulty, as it seems to be
> > working fine for everyone else, so I rather assume that something in a
> > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > ;-)
> > 
> > The issue is that when X.org/lightdm starts up, there are "garbled"
> > section on the screen, for example, rectangular boxes that are just black
> > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > of characters; but not all characters) are displayed as rectangular gray
> > or black boxes, and/or icons in a GNOME session are not displayed
> > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > a Linux console, I can use that one fine.  Switching back to X, in the
> > majority of all cases, the screen will be completely black, but with the
> > mouse cursor still rendered properly (done in hardware, I assume).
> > 
> > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > top of v3.12, and everything is back to normal.  The problem also
> > persists with a v3.14 kernel that I just built.
> > 
> > I will try to figure out what's going on, but will gladly take any
> > pointers, or suggestions about how to tackle such a problem.
> > 
> > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > using that; instead I put in a Sapphire Radeon HD 4350 card.
> 
> I went over this code change repeatedly but I could not see anything
> directly that would explain it.  However, this patch DOES change the
> way allocations are placed (while still respecting zone specifiers
> like __GFP_DMA etc.) and so it's possible that they unearthed a
> corruption, or a wrongly set dma mask in the drivers.
> 
> Ccing the radeon driver guys.  Full quote follows.

Can we get a full dmesg, to know if thing like IOMMU are enabled or not.
This is even more puzzling as rv710 has 40bit dma mask iirc and thus you
should be fine even without IOMMU. But given the patch you point to, it
really can only be something that allocate page in place the GPU fails
to access.

Thomas how much memory do you have (again dmes will also provide mapping
informations) ?

My guess is that the pcie bridge can only remap dma page with 32bit dma
mask while the gpu is fine with 40bit dma mask. I always thought that the
pcie/pci code did take care of such thing for us.

Cheers,
Jérôme Glisse

> 
> >     $ cat < /proc/cpuinfo
> >     processor       : 0
> >     vendor_id       : AuthenticAMD
> >     cpu family      : 15
> >     model           : 47
> >     model name      : AMD Sempron(tm) Processor 3000+
> >     stepping        : 2
> >     cpu MHz         : 1000.000
> >     cache size      : 128 KB
> >     physical id     : 0
> >     siblings        : 1
> >     core id         : 0
> >     cpu cores       : 1
> >     apicid          : 0
> >     initial apicid  : 0
> >     fpu             : yes
> >     fpu_exception   : yes
> >     cpuid level     : 1
> >     wp              : yes
> >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> >     bogomips        : 2000.20
> >     TLB size        : 1024 4K pages
> >     clflush size    : 64
> >     cache_alignment : 64
> >     address sizes   : 40 bits physical, 48 bits virtual
> >     power management: ts fid vid ttp tm stc
> >     $ sudo lspci -nn -k -vv
> >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 64
> >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> >             Capabilities: [a0] AGP version 3.0
> >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> >                     Revision ID: 1.05
> >                     Link Frequency 0: 800MHz
> >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> >                     Link Frequency 1: 200MHz
> >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> >                     Prefetchable memory behind bridge Upper: 00-00
> >                     Bus Number: 00
> >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> >             Kernel driver in use: agpgart-amd64
> >     
> >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> >             I/O behind bridge: 00002000-00002fff
> >             Memory behind bridge: f2100000-f21fffff
> >             Prefetchable memory behind bridge: e0000000-efffffff
> >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> >                             ExtTag+ RBE-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> >                             ClockPM- Surprise- LLActRep+ BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> >                             Changed: MRL- PresDet- LinkState-
> >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> >                     RootCap: CRSVisible-
> >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> >                     Address: 00000000  Data: 0000
> >             Capabilities: [f4] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: pcieport
> >     
> >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 0
> >     
> >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 128
> >             Interrupt: pin ? routed to IRQ 16
> >             Region 0: I/O ports at 01f0 [size=8]
> >             Region 1: I/O ports at 03f4
> >             Region 2: I/O ports at 0170 [size=8]
> >             Region 3: I/O ports at 0374
> >             Region 4: I/O ports at 1c80 [size=16]
> >             Capabilities: [58] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: pata_sis
> >     
> >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 173 (13000ns min, 2750ns max)
> >             Interrupt: pin C routed to IRQ 18
> >             Region 0: I/O ports at 1400 [size=256]
> >             Region 1: I/O ports at 1000 [size=128]
> >             Capabilities: [48] Power Management version 2
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: snd_intel8x0
> >     
> >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin A routed to IRQ 20
> >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin B routed to IRQ 21
> >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin C routed to IRQ 22
> >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin D routed to IRQ 23
> >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> >             Capabilities: [50] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: ehci-pci
> >     
> >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64
> >             Interrupt: pin A routed to IRQ 17
> >             Region 0: I/O ports at 1cb0 [size=8]
> >             Region 1: I/O ports at 1ca4 [size=4]
> >             Region 2: I/O ports at 1ca8 [size=8]
> >             Region 3: I/O ports at 1ca0 [size=4]
> >             Region 4: I/O ports at 1c90 [size=16]
> >             Region 5: I/O ports at 1c00 [size=128]
> >             Capabilities: [58] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: sata_sis
> >     
> >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> >                     Address: fee0100c  Data: 4181
> >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> >                             ExtTag+ RBE-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> >                             Changed: MRL- PresDet- LinkState-
> >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> >                     RootCap: CRSVisible-
> >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >             Capabilities: [f4] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [100 v1] Virtual Channel
> >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> >                     Ctrl:   ArbSelect=Fixed
> >                     Status: InProgress-
> >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> >                             Status: NegoPending- InProgress-
> >             Capabilities: [130 v1] Advanced Error Reporting
> >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> >             Kernel driver in use: pcieport
> >     
> >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> >             Interrupt: pin A routed to IRQ 19
> >             Region 0: I/O ports at 1800 [size=256]
> >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> >             Capabilities: [dc] Power Management version 2
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: r8169
> >     
> >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >                     Revision ID: 1.02
> >                     Link Frequency: 800MHz
> >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> >     
> >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >     
> >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Kernel driver in use: amd64_edac
> >     
> >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Kernel driver in use: k8temp
> >     
> >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Interrupt: pin A routed to IRQ 42
> >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> >             Region 4: I/O ports at 2000 [size=256]
> >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> >             Capabilities: [50] Power Management version 3
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> >                              Compliance De-emphasis: -6dB
> >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >                     Address: 00000000fee0100c  Data: 41e1
> >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> >             Kernel driver in use: radeon
> >     
> >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Interrupt: pin B routed to IRQ 41
> >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> >             Capabilities: [50] Power Management version 3
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >                     Address: 00000000fee0100c  Data: 41d1
> >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> >             Kernel driver in use: snd_hda_intel
> > 
> > 
> > Grüße,
> >  Thomas
> 
> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2014-04-25 21:47         ` Jerome Glisse
@ 2014-04-25 21:50           ` Jerome Glisse
  -1 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-25 21:50 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Thomas Schwinge, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel,
	Andrew Morton, Alex Deucher, Christian König, dri-devel

[-- Attachment #1: Type: text/plain, Size: 31183 bytes --]

On Fri, Apr 25, 2014 at 05:47:48PM -0400, Jerome Glisse wrote:
> On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> > Hi Thomas,
> > 
> > On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > > Hi!
> > > 
> > > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > > Each zone that holds userspace pages of one workload must be aged at a
> > > > speed proportional to the zone size.  [...]
> > > 
> > > > Fix this with a very simple round robin allocator.  [...]
> > > 
> > > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > > 
> > > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > > and it started to exhibit "strange" issues, which I then bisected to this
> > > patch.  I'm not saying that the patch is faulty, as it seems to be
> > > working fine for everyone else, so I rather assume that something in a
> > > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > > ;-)
> > > 
> > > The issue is that when X.org/lightdm starts up, there are "garbled"
> > > section on the screen, for example, rectangular boxes that are just black
> > > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > > of characters; but not all characters) are displayed as rectangular gray
> > > or black boxes, and/or icons in a GNOME session are not displayed
> > > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > > a Linux console, I can use that one fine.  Switching back to X, in the
> > > majority of all cases, the screen will be completely black, but with the
> > > mouse cursor still rendered properly (done in hardware, I assume).
> > > 
> > > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > > top of v3.12, and everything is back to normal.  The problem also
> > > persists with a v3.14 kernel that I just built.
> > > 
> > > I will try to figure out what's going on, but will gladly take any
> > > pointers, or suggestions about how to tackle such a problem.
> > > 
> > > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > > using that; instead I put in a Sapphire Radeon HD 4350 card.
> > 
> > I went over this code change repeatedly but I could not see anything
> > directly that would explain it.  However, this patch DOES change the
> > way allocations are placed (while still respecting zone specifiers
> > like __GFP_DMA etc.) and so it's possible that they unearthed a
> > corruption, or a wrongly set dma mask in the drivers.
> > 
> > Ccing the radeon driver guys.  Full quote follows.
> 
> Can we get a full dmesg, to know if thing like IOMMU are enabled or not.
> This is even more puzzling as rv710 has 40bit dma mask iirc and thus you
> should be fine even without IOMMU. But given the patch you point to, it
> really can only be something that allocate page in place the GPU fails
> to access.
> 
> Thomas how much memory do you have (again dmes will also provide mapping
> informations) ?
> 
> My guess is that the pcie bridge can only remap dma page with 32bit dma
> mask while the gpu is fine with 40bit dma mask. I always thought that the
> pcie/pci code did take care of such thing for us.
> 
> Cheers,
> Jérôme Glisse

Forgot to attach patch to test my theory. Does the attached patch fix
the issue ?

> 
> > 
> > >     $ cat < /proc/cpuinfo
> > >     processor       : 0
> > >     vendor_id       : AuthenticAMD
> > >     cpu family      : 15
> > >     model           : 47
> > >     model name      : AMD Sempron(tm) Processor 3000+
> > >     stepping        : 2
> > >     cpu MHz         : 1000.000
> > >     cache size      : 128 KB
> > >     physical id     : 0
> > >     siblings        : 1
> > >     core id         : 0
> > >     cpu cores       : 1
> > >     apicid          : 0
> > >     initial apicid  : 0
> > >     fpu             : yes
> > >     fpu_exception   : yes
> > >     cpuid level     : 1
> > >     wp              : yes
> > >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> > >     bogomips        : 2000.20
> > >     TLB size        : 1024 4K pages
> > >     clflush size    : 64
> > >     cache_alignment : 64
> > >     address sizes   : 40 bits physical, 48 bits virtual
> > >     power management: ts fid vid ttp tm stc
> > >     $ sudo lspci -nn -k -vv
> > >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 64
> > >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> > >             Capabilities: [a0] AGP version 3.0
> > >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> > >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> > >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> > >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> > >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> > >                     Revision ID: 1.05
> > >                     Link Frequency 0: 800MHz
> > >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> > >                     Link Frequency 1: 200MHz
> > >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> > >                     Prefetchable memory behind bridge Upper: 00-00
> > >                     Bus Number: 00
> > >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> > >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> > >             Kernel driver in use: agpgart-amd64
> > >     
> > >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> > >             I/O behind bridge: 00002000-00002fff
> > >             Memory behind bridge: f2100000-f21fffff
> > >             Prefetchable memory behind bridge: e0000000-efffffff
> > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >                             ExtTag+ RBE-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > >                             ClockPM- Surprise- LLActRep+ BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > >                             Changed: MRL- PresDet- LinkState-
> > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > >                     RootCap: CRSVisible-
> > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> > >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> > >                     Address: 00000000  Data: 0000
> > >             Capabilities: [f4] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: pcieport
> > >     
> > >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 0
> > >     
> > >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 128
> > >             Interrupt: pin ? routed to IRQ 16
> > >             Region 0: I/O ports at 01f0 [size=8]
> > >             Region 1: I/O ports at 03f4
> > >             Region 2: I/O ports at 0170 [size=8]
> > >             Region 3: I/O ports at 0374
> > >             Region 4: I/O ports at 1c80 [size=16]
> > >             Capabilities: [58] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: pata_sis
> > >     
> > >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> > >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 173 (13000ns min, 2750ns max)
> > >             Interrupt: pin C routed to IRQ 18
> > >             Region 0: I/O ports at 1400 [size=256]
> > >             Region 1: I/O ports at 1000 [size=128]
> > >             Capabilities: [48] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: snd_intel8x0
> > >     
> > >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin A routed to IRQ 20
> > >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin B routed to IRQ 21
> > >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin C routed to IRQ 22
> > >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin D routed to IRQ 23
> > >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> > >             Capabilities: [50] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: ehci-pci
> > >     
> > >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64
> > >             Interrupt: pin A routed to IRQ 17
> > >             Region 0: I/O ports at 1cb0 [size=8]
> > >             Region 1: I/O ports at 1ca4 [size=4]
> > >             Region 2: I/O ports at 1ca8 [size=8]
> > >             Region 3: I/O ports at 1ca0 [size=4]
> > >             Region 4: I/O ports at 1c90 [size=16]
> > >             Region 5: I/O ports at 1c00 [size=128]
> > >             Capabilities: [58] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: sata_sis
> > >     
> > >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> > >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > >                     Address: fee0100c  Data: 4181
> > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >                             ExtTag+ RBE-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > >                             Changed: MRL- PresDet- LinkState-
> > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > >                     RootCap: CRSVisible-
> > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >             Capabilities: [f4] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [100 v1] Virtual Channel
> > >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> > >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> > >                     Ctrl:   ArbSelect=Fixed
> > >                     Status: InProgress-
> > >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> > >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> > >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> > >                             Status: NegoPending- InProgress-
> > >             Capabilities: [130 v1] Advanced Error Reporting
> > >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> > >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> > >             Kernel driver in use: pcieport
> > >     
> > >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> > >             Interrupt: pin A routed to IRQ 19
> > >             Region 0: I/O ports at 1800 [size=256]
> > >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> > >             Capabilities: [dc] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: r8169
> > >     
> > >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> > >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> > >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >                     Revision ID: 1.02
> > >                     Link Frequency: 800MHz
> > >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> > >     
> > >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >     
> > >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Kernel driver in use: amd64_edac
> > >     
> > >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Kernel driver in use: k8temp
> > >     
> > >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Interrupt: pin A routed to IRQ 42
> > >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> > >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> > >             Region 4: I/O ports at 2000 [size=256]
> > >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> > >             Capabilities: [50] Power Management version 3
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> > >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> > >                              Compliance De-emphasis: -6dB
> > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >                     Address: 00000000fee0100c  Data: 41e1
> > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > >             Kernel driver in use: radeon
> > >     
> > >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Interrupt: pin B routed to IRQ 41
> > >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> > >             Capabilities: [50] Power Management version 3
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >                     Address: 00000000fee0100c  Data: 41d1
> > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > >             Kernel driver in use: snd_hda_intel
> > > 
> > > 
> > > Grüße,
> > >  Thomas
> > 
> > 
> > --
> > To unsubscribe, send a message with 'unsubscribe linux-mm' in
> > the body to majordomo@kvack.org.  For more info on Linux MM,
> > see: http://www.linux-mm.org/ .
> > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

[-- Attachment #2: force-32bitdma.patch --]
[-- Type: text/plain, Size: 473 bytes --]

diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
index 511fe26..632f796 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -1244,6 +1244,7 @@ int radeon_device_init(struct radeon_device *rdev,
 		rdev->need_dma32 = true;
 
 	dma_bits = rdev->need_dma32 ? 32 : 40;
+	dma_bits = 32;
 	r = pci_set_dma_mask(rdev->pdev, DMA_BIT_MASK(dma_bits));
 	if (r) {
 		rdev->need_dma32 = true;

^ permalink raw reply related	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-25 21:50           ` Jerome Glisse
  0 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-25 21:50 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Thomas Schwinge, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel,
	Andrew Morton, Alex Deucher, Christian König, dri-devel

[-- Attachment #1: Type: text/plain, Size: 31184 bytes --]

On Fri, Apr 25, 2014 at 05:47:48PM -0400, Jerome Glisse wrote:
> On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> > Hi Thomas,
> > 
> > On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > > Hi!
> > > 
> > > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > > Each zone that holds userspace pages of one workload must be aged at a
> > > > speed proportional to the zone size.  [...]
> > > 
> > > > Fix this with a very simple round robin allocator.  [...]
> > > 
> > > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > > 
> > > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > > and it started to exhibit "strange" issues, which I then bisected to this
> > > patch.  I'm not saying that the patch is faulty, as it seems to be
> > > working fine for everyone else, so I rather assume that something in a
> > > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > > ;-)
> > > 
> > > The issue is that when X.org/lightdm starts up, there are "garbled"
> > > section on the screen, for example, rectangular boxes that are just black
> > > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > > of characters; but not all characters) are displayed as rectangular gray
> > > or black boxes, and/or icons in a GNOME session are not displayed
> > > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > > a Linux console, I can use that one fine.  Switching back to X, in the
> > > majority of all cases, the screen will be completely black, but with the
> > > mouse cursor still rendered properly (done in hardware, I assume).
> > > 
> > > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > > top of v3.12, and everything is back to normal.  The problem also
> > > persists with a v3.14 kernel that I just built.
> > > 
> > > I will try to figure out what's going on, but will gladly take any
> > > pointers, or suggestions about how to tackle such a problem.
> > > 
> > > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > > using that; instead I put in a Sapphire Radeon HD 4350 card.
> > 
> > I went over this code change repeatedly but I could not see anything
> > directly that would explain it.  However, this patch DOES change the
> > way allocations are placed (while still respecting zone specifiers
> > like __GFP_DMA etc.) and so it's possible that they unearthed a
> > corruption, or a wrongly set dma mask in the drivers.
> > 
> > Ccing the radeon driver guys.  Full quote follows.
> 
> Can we get a full dmesg, to know if thing like IOMMU are enabled or not.
> This is even more puzzling as rv710 has 40bit dma mask iirc and thus you
> should be fine even without IOMMU. But given the patch you point to, it
> really can only be something that allocate page in place the GPU fails
> to access.
> 
> Thomas how much memory do you have (again dmes will also provide mapping
> informations) ?
> 
> My guess is that the pcie bridge can only remap dma page with 32bit dma
> mask while the gpu is fine with 40bit dma mask. I always thought that the
> pcie/pci code did take care of such thing for us.
> 
> Cheers,
> Jerome Glisse

Forgot to attach patch to test my theory. Does the attached patch fix
the issue ?

> 
> > 
> > >     $ cat < /proc/cpuinfo
> > >     processor       : 0
> > >     vendor_id       : AuthenticAMD
> > >     cpu family      : 15
> > >     model           : 47
> > >     model name      : AMD Sempron(tm) Processor 3000+
> > >     stepping        : 2
> > >     cpu MHz         : 1000.000
> > >     cache size      : 128 KB
> > >     physical id     : 0
> > >     siblings        : 1
> > >     core id         : 0
> > >     cpu cores       : 1
> > >     apicid          : 0
> > >     initial apicid  : 0
> > >     fpu             : yes
> > >     fpu_exception   : yes
> > >     cpuid level     : 1
> > >     wp              : yes
> > >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> > >     bogomips        : 2000.20
> > >     TLB size        : 1024 4K pages
> > >     clflush size    : 64
> > >     cache_alignment : 64
> > >     address sizes   : 40 bits physical, 48 bits virtual
> > >     power management: ts fid vid ttp tm stc
> > >     $ sudo lspci -nn -k -vv
> > >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 64
> > >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> > >             Capabilities: [a0] AGP version 3.0
> > >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> > >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> > >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> > >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> > >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> > >                     Revision ID: 1.05
> > >                     Link Frequency 0: 800MHz
> > >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> > >                     Link Frequency 1: 200MHz
> > >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> > >                     Prefetchable memory behind bridge Upper: 00-00
> > >                     Bus Number: 00
> > >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> > >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> > >             Kernel driver in use: agpgart-amd64
> > >     
> > >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> > >             I/O behind bridge: 00002000-00002fff
> > >             Memory behind bridge: f2100000-f21fffff
> > >             Prefetchable memory behind bridge: e0000000-efffffff
> > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >                             ExtTag+ RBE-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > >                             ClockPM- Surprise- LLActRep+ BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > >                             Changed: MRL- PresDet- LinkState-
> > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > >                     RootCap: CRSVisible-
> > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> > >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> > >                     Address: 00000000  Data: 0000
> > >             Capabilities: [f4] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: pcieport
> > >     
> > >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 0
> > >     
> > >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 128
> > >             Interrupt: pin ? routed to IRQ 16
> > >             Region 0: I/O ports at 01f0 [size=8]
> > >             Region 1: I/O ports at 03f4
> > >             Region 2: I/O ports at 0170 [size=8]
> > >             Region 3: I/O ports at 0374
> > >             Region 4: I/O ports at 1c80 [size=16]
> > >             Capabilities: [58] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: pata_sis
> > >     
> > >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> > >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 173 (13000ns min, 2750ns max)
> > >             Interrupt: pin C routed to IRQ 18
> > >             Region 0: I/O ports at 1400 [size=256]
> > >             Region 1: I/O ports at 1000 [size=128]
> > >             Capabilities: [48] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: snd_intel8x0
> > >     
> > >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin A routed to IRQ 20
> > >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin B routed to IRQ 21
> > >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin C routed to IRQ 22
> > >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin D routed to IRQ 23
> > >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> > >             Capabilities: [50] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: ehci-pci
> > >     
> > >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64
> > >             Interrupt: pin A routed to IRQ 17
> > >             Region 0: I/O ports at 1cb0 [size=8]
> > >             Region 1: I/O ports at 1ca4 [size=4]
> > >             Region 2: I/O ports at 1ca8 [size=8]
> > >             Region 3: I/O ports at 1ca0 [size=4]
> > >             Region 4: I/O ports at 1c90 [size=16]
> > >             Region 5: I/O ports at 1c00 [size=128]
> > >             Capabilities: [58] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: sata_sis
> > >     
> > >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> > >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > >                     Address: fee0100c  Data: 4181
> > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >                             ExtTag+ RBE-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > >                             Changed: MRL- PresDet- LinkState-
> > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > >                     RootCap: CRSVisible-
> > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >             Capabilities: [f4] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [100 v1] Virtual Channel
> > >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> > >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> > >                     Ctrl:   ArbSelect=Fixed
> > >                     Status: InProgress-
> > >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> > >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> > >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> > >                             Status: NegoPending- InProgress-
> > >             Capabilities: [130 v1] Advanced Error Reporting
> > >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> > >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> > >             Kernel driver in use: pcieport
> > >     
> > >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> > >             Interrupt: pin A routed to IRQ 19
> > >             Region 0: I/O ports at 1800 [size=256]
> > >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> > >             Capabilities: [dc] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: r8169
> > >     
> > >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> > >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> > >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >                     Revision ID: 1.02
> > >                     Link Frequency: 800MHz
> > >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> > >     
> > >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >     
> > >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Kernel driver in use: amd64_edac
> > >     
> > >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Kernel driver in use: k8temp
> > >     
> > >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Interrupt: pin A routed to IRQ 42
> > >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> > >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> > >             Region 4: I/O ports at 2000 [size=256]
> > >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> > >             Capabilities: [50] Power Management version 3
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> > >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> > >                              Compliance De-emphasis: -6dB
> > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >                     Address: 00000000fee0100c  Data: 41e1
> > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > >             Kernel driver in use: radeon
> > >     
> > >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Interrupt: pin B routed to IRQ 41
> > >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> > >             Capabilities: [50] Power Management version 3
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >                     Address: 00000000fee0100c  Data: 41d1
> > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > >             Kernel driver in use: snd_hda_intel
> > > 
> > > 
> > > Grusse,
> > >  Thomas
> > 
> > 
> > --
> > To unsubscribe, send a message with 'unsubscribe linux-mm' in
> > the body to majordomo@kvack.org.  For more info on Linux MM,
> > see: http://www.linux-mm.org/ .
> > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

[-- Attachment #2: force-32bitdma.patch --]
[-- Type: text/plain, Size: 473 bytes --]

diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
index 511fe26..632f796 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -1244,6 +1244,7 @@ int radeon_device_init(struct radeon_device *rdev,
 		rdev->need_dma32 = true;
 
 	dma_bits = rdev->need_dma32 ? 32 : 40;
+	dma_bits = 32;
 	r = pci_set_dma_mask(rdev->pdev, DMA_BIT_MASK(dma_bits));
 	if (r) {
 		rdev->need_dma32 = true;

^ permalink raw reply related	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2014-04-25 21:50           ` Jerome Glisse
  (?)
@ 2014-04-25 23:03             ` Jerome Glisse
  -1 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-25 23:03 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Thomas Schwinge, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel,
	Andrew Morton, Alex Deucher, Christian König, dri-devel

On Fri, Apr 25, 2014 at 05:50:57PM -0400, Jerome Glisse wrote:
> On Fri, Apr 25, 2014 at 05:47:48PM -0400, Jerome Glisse wrote:
> > On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> > > Hi Thomas,
> > > 
> > > On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > > > Hi!
> > > > 
> > > > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > > > Each zone that holds userspace pages of one workload must be aged at a
> > > > > speed proportional to the zone size.  [...]
> > > > 
> > > > > Fix this with a very simple round robin allocator.  [...]
> > > > 
> > > > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > > > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > > > 
> > > > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > > > and it started to exhibit "strange" issues, which I then bisected to this
> > > > patch.  I'm not saying that the patch is faulty, as it seems to be
> > > > working fine for everyone else, so I rather assume that something in a
> > > > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > > > ;-)
> > > > 
> > > > The issue is that when X.org/lightdm starts up, there are "garbled"
> > > > section on the screen, for example, rectangular boxes that are just black
> > > > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > > > of characters; but not all characters) are displayed as rectangular gray
> > > > or black boxes, and/or icons in a GNOME session are not displayed
> > > > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > > > a Linux console, I can use that one fine.  Switching back to X, in the
> > > > majority of all cases, the screen will be completely black, but with the
> > > > mouse cursor still rendered properly (done in hardware, I assume).
> > > > 
> > > > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > > > top of v3.12, and everything is back to normal.  The problem also
> > > > persists with a v3.14 kernel that I just built.
> > > > 
> > > > I will try to figure out what's going on, but will gladly take any
> > > > pointers, or suggestions about how to tackle such a problem.
> > > > 
> > > > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > > > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > > > using that; instead I put in a Sapphire Radeon HD 4350 card.
> > > 
> > > I went over this code change repeatedly but I could not see anything
> > > directly that would explain it.  However, this patch DOES change the
> > > way allocations are placed (while still respecting zone specifiers
> > > like __GFP_DMA etc.) and so it's possible that they unearthed a
> > > corruption, or a wrongly set dma mask in the drivers.
> > > 
> > > Ccing the radeon driver guys.  Full quote follows.
> > 
> > Can we get a full dmesg, to know if thing like IOMMU are enabled or not.
> > This is even more puzzling as rv710 has 40bit dma mask iirc and thus you
> > should be fine even without IOMMU. But given the patch you point to, it
> > really can only be something that allocate page in place the GPU fails
> > to access.
> > 
> > Thomas how much memory do you have (again dmes will also provide mapping
> > informations) ?
> > 
> > My guess is that the pcie bridge can only remap dma page with 32bit dma
> > mask while the gpu is fine with 40bit dma mask. I always thought that the
> > pcie/pci code did take care of such thing for us.
> > 
> > Cheers,
> > Jérôme Glisse
> 
> Forgot to attach patch to test my theory. Does the attached patch fix
> the issue ?

So this is likely it, the SIS chipset of this motherboard is a freak show.
It support both PCIE and AGP at same time

http://www.newegg.com/Product/Product.aspx?Item=N82E16813185068

Why in hell ?

So my guess is that the root pcie bridge is behind the AGP bridge which
swallow any address > 32bit and thus the dma mask of the pcie radeon
card is just believing that we are living in a sane world.

Cheers,
Jérôme Glisse

> 
> > 
> > > 
> > > >     $ cat < /proc/cpuinfo
> > > >     processor       : 0
> > > >     vendor_id       : AuthenticAMD
> > > >     cpu family      : 15
> > > >     model           : 47
> > > >     model name      : AMD Sempron(tm) Processor 3000+
> > > >     stepping        : 2
> > > >     cpu MHz         : 1000.000
> > > >     cache size      : 128 KB
> > > >     physical id     : 0
> > > >     siblings        : 1
> > > >     core id         : 0
> > > >     cpu cores       : 1
> > > >     apicid          : 0
> > > >     initial apicid  : 0
> > > >     fpu             : yes
> > > >     fpu_exception   : yes
> > > >     cpuid level     : 1
> > > >     wp              : yes
> > > >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> > > >     bogomips        : 2000.20
> > > >     TLB size        : 1024 4K pages
> > > >     clflush size    : 64
> > > >     cache_alignment : 64
> > > >     address sizes   : 40 bits physical, 48 bits virtual
> > > >     power management: ts fid vid ttp tm stc
> > > >     $ sudo lspci -nn -k -vv
> > > >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > > >             Latency: 64
> > > >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> > > >             Capabilities: [a0] AGP version 3.0
> > > >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> > > >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> > > >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> > > >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> > > >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > > >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > > >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > > >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> > > >                     Revision ID: 1.05
> > > >                     Link Frequency 0: 800MHz
> > > >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> > > >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> > > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> > > >                     Link Frequency 1: 200MHz
> > > >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> > > >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > > >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> > > >                     Prefetchable memory behind bridge Upper: 00-00
> > > >                     Bus Number: 00
> > > >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> > > >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> > > >             Kernel driver in use: agpgart-amd64
> > > >     
> > > >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 0, Cache Line Size: 64 bytes
> > > >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> > > >             I/O behind bridge: 00002000-00002fff
> > > >             Memory behind bridge: f2100000-f21fffff
> > > >             Prefetchable memory behind bridge: e0000000-efffffff
> > > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> > > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> > > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > > >                             ExtTag+ RBE-
> > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > > >                             ClockPM- Surprise- LLActRep+ BwNot-
> > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> > > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > > >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> > > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > > >                             Changed: MRL- PresDet- LinkState-
> > > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > > >                     RootCap: CRSVisible-
> > > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > > >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> > > >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> > > >                     Address: 00000000  Data: 0000
> > > >             Capabilities: [f4] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: pcieport
> > > >     
> > > >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > > >             Latency: 0
> > > >     
> > > >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 128
> > > >             Interrupt: pin ? routed to IRQ 16
> > > >             Region 0: I/O ports at 01f0 [size=8]
> > > >             Region 1: I/O ports at 03f4
> > > >             Region 2: I/O ports at 0170 [size=8]
> > > >             Region 3: I/O ports at 0374
> > > >             Region 4: I/O ports at 1c80 [size=16]
> > > >             Capabilities: [58] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: pata_sis
> > > >     
> > > >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> > > >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> > > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 173 (13000ns min, 2750ns max)
> > > >             Interrupt: pin C routed to IRQ 18
> > > >             Region 0: I/O ports at 1400 [size=256]
> > > >             Region 1: I/O ports at 1000 [size=128]
> > > >             Capabilities: [48] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: snd_intel8x0
> > > >     
> > > >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (20000ns max)
> > > >             Interrupt: pin A routed to IRQ 20
> > > >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> > > >             Kernel driver in use: ohci-pci
> > > >     
> > > >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (20000ns max)
> > > >             Interrupt: pin B routed to IRQ 21
> > > >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> > > >             Kernel driver in use: ohci-pci
> > > >     
> > > >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (20000ns max)
> > > >             Interrupt: pin C routed to IRQ 22
> > > >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> > > >             Kernel driver in use: ohci-pci
> > > >     
> > > >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > > >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (20000ns max)
> > > >             Interrupt: pin D routed to IRQ 23
> > > >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> > > >             Capabilities: [50] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: ehci-pci
> > > >     
> > > >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64
> > > >             Interrupt: pin A routed to IRQ 17
> > > >             Region 0: I/O ports at 1cb0 [size=8]
> > > >             Region 1: I/O ports at 1ca4 [size=4]
> > > >             Region 2: I/O ports at 1ca8 [size=8]
> > > >             Region 3: I/O ports at 1ca0 [size=4]
> > > >             Region 4: I/O ports at 1c90 [size=16]
> > > >             Region 5: I/O ports at 1c00 [size=128]
> > > >             Capabilities: [58] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: sata_sis
> > > >     
> > > >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 0, Cache Line Size: 64 bytes
> > > >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> > > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> > > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> > > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > > >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> > > >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > > >                     Address: fee0100c  Data: 4181
> > > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > > >                             ExtTag+ RBE-
> > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > > >                             ClockPM- Surprise- LLActRep- BwNot-
> > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > > >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> > > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > > >                             Changed: MRL- PresDet- LinkState-
> > > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > > >                     RootCap: CRSVisible-
> > > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > > >             Capabilities: [f4] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Capabilities: [100 v1] Virtual Channel
> > > >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> > > >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> > > >                     Ctrl:   ArbSelect=Fixed
> > > >                     Status: InProgress-
> > > >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> > > >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> > > >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> > > >                             Status: NegoPending- InProgress-
> > > >             Capabilities: [130 v1] Advanced Error Reporting
> > > >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > > >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > > >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> > > >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > > >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > > >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> > > >             Kernel driver in use: pcieport
> > > >     
> > > >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> > > >             Interrupt: pin A routed to IRQ 19
> > > >             Region 0: I/O ports at 1800 [size=256]
> > > >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> > > >             Capabilities: [dc] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: r8169
> > > >     
> > > >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> > > >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> > > >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > > >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > > >                     Revision ID: 1.02
> > > >                     Link Frequency: 800MHz
> > > >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> > > >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> > > >     
> > > >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >     
> > > >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Kernel driver in use: amd64_edac
> > > >     
> > > >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Kernel driver in use: k8temp
> > > >     
> > > >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> > > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > > >             Latency: 0, Cache Line Size: 64 bytes
> > > >             Interrupt: pin A routed to IRQ 42
> > > >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> > > >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> > > >             Region 4: I/O ports at 2000 [size=256]
> > > >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> > > >             Capabilities: [50] Power Management version 3
> > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > > >                             ClockPM- Surprise- LLActRep- BwNot-
> > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > > >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> > > >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> > > >                              Compliance De-emphasis: -6dB
> > > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > > >                     Address: 00000000fee0100c  Data: 41e1
> > > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > > >             Kernel driver in use: radeon
> > > >     
> > > >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> > > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 0, Cache Line Size: 64 bytes
> > > >             Interrupt: pin B routed to IRQ 41
> > > >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> > > >             Capabilities: [50] Power Management version 3
> > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > > >                             ClockPM- Surprise- LLActRep- BwNot-
> > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > > >                     Address: 00000000fee0100c  Data: 41d1
> > > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > > >             Kernel driver in use: snd_hda_intel
> > > > 
> > > > 
> > > > Grüße,
> > > >  Thomas
> > > 
> > > 
> > > --
> > > To unsubscribe, send a message with 'unsubscribe linux-mm' in
> > > the body to majordomo@kvack.org.  For more info on Linux MM,
> > > see: http://www.linux-mm.org/ .
> > > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

> diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
> index 511fe26..632f796 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -1244,6 +1244,7 @@ int radeon_device_init(struct radeon_device *rdev,
>  		rdev->need_dma32 = true;
>  
>  	dma_bits = rdev->need_dma32 ? 32 : 40;
> +	dma_bits = 32;
>  	r = pci_set_dma_mask(rdev->pdev, DMA_BIT_MASK(dma_bits));
>  	if (r) {
>  		rdev->need_dma32 = true;


^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-25 23:03             ` Jerome Glisse
  0 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-25 23:03 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Thomas Schwinge, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel,
	Andrew Morton, Alex Deucher, Christian König, dri-devel

On Fri, Apr 25, 2014 at 05:50:57PM -0400, Jerome Glisse wrote:
> On Fri, Apr 25, 2014 at 05:47:48PM -0400, Jerome Glisse wrote:
> > On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> > > Hi Thomas,
> > > 
> > > On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > > > Hi!
> > > > 
> > > > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > > > Each zone that holds userspace pages of one workload must be aged at a
> > > > > speed proportional to the zone size.  [...]
> > > > 
> > > > > Fix this with a very simple round robin allocator.  [...]
> > > > 
> > > > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > > > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > > > 
> > > > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > > > and it started to exhibit "strange" issues, which I then bisected to this
> > > > patch.  I'm not saying that the patch is faulty, as it seems to be
> > > > working fine for everyone else, so I rather assume that something in a
> > > > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > > > ;-)
> > > > 
> > > > The issue is that when X.org/lightdm starts up, there are "garbled"
> > > > section on the screen, for example, rectangular boxes that are just black
> > > > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > > > of characters; but not all characters) are displayed as rectangular gray
> > > > or black boxes, and/or icons in a GNOME session are not displayed
> > > > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > > > a Linux console, I can use that one fine.  Switching back to X, in the
> > > > majority of all cases, the screen will be completely black, but with the
> > > > mouse cursor still rendered properly (done in hardware, I assume).
> > > > 
> > > > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > > > top of v3.12, and everything is back to normal.  The problem also
> > > > persists with a v3.14 kernel that I just built.
> > > > 
> > > > I will try to figure out what's going on, but will gladly take any
> > > > pointers, or suggestions about how to tackle such a problem.
> > > > 
> > > > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > > > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > > > using that; instead I put in a Sapphire Radeon HD 4350 card.
> > > 
> > > I went over this code change repeatedly but I could not see anything
> > > directly that would explain it.  However, this patch DOES change the
> > > way allocations are placed (while still respecting zone specifiers
> > > like __GFP_DMA etc.) and so it's possible that they unearthed a
> > > corruption, or a wrongly set dma mask in the drivers.
> > > 
> > > Ccing the radeon driver guys.  Full quote follows.
> > 
> > Can we get a full dmesg, to know if thing like IOMMU are enabled or not.
> > This is even more puzzling as rv710 has 40bit dma mask iirc and thus you
> > should be fine even without IOMMU. But given the patch you point to, it
> > really can only be something that allocate page in place the GPU fails
> > to access.
> > 
> > Thomas how much memory do you have (again dmes will also provide mapping
> > informations) ?
> > 
> > My guess is that the pcie bridge can only remap dma page with 32bit dma
> > mask while the gpu is fine with 40bit dma mask. I always thought that the
> > pcie/pci code did take care of such thing for us.
> > 
> > Cheers,
> > Jerome Glisse
> 
> Forgot to attach patch to test my theory. Does the attached patch fix
> the issue ?

So this is likely it, the SIS chipset of this motherboard is a freak show.
It support both PCIE and AGP at same time

http://www.newegg.com/Product/Product.aspx?Item=N82E16813185068

Why in hell ?

So my guess is that the root pcie bridge is behind the AGP bridge which
swallow any address > 32bit and thus the dma mask of the pcie radeon
card is just believing that we are living in a sane world.

Cheers,
Jerome Glisse

> 
> > 
> > > 
> > > >     $ cat < /proc/cpuinfo
> > > >     processor       : 0
> > > >     vendor_id       : AuthenticAMD
> > > >     cpu family      : 15
> > > >     model           : 47
> > > >     model name      : AMD Sempron(tm) Processor 3000+
> > > >     stepping        : 2
> > > >     cpu MHz         : 1000.000
> > > >     cache size      : 128 KB
> > > >     physical id     : 0
> > > >     siblings        : 1
> > > >     core id         : 0
> > > >     cpu cores       : 1
> > > >     apicid          : 0
> > > >     initial apicid  : 0
> > > >     fpu             : yes
> > > >     fpu_exception   : yes
> > > >     cpuid level     : 1
> > > >     wp              : yes
> > > >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> > > >     bogomips        : 2000.20
> > > >     TLB size        : 1024 4K pages
> > > >     clflush size    : 64
> > > >     cache_alignment : 64
> > > >     address sizes   : 40 bits physical, 48 bits virtual
> > > >     power management: ts fid vid ttp tm stc
> > > >     $ sudo lspci -nn -k -vv
> > > >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > > >             Latency: 64
> > > >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> > > >             Capabilities: [a0] AGP version 3.0
> > > >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> > > >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> > > >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> > > >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> > > >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > > >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > > >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > > >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> > > >                     Revision ID: 1.05
> > > >                     Link Frequency 0: 800MHz
> > > >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> > > >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> > > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> > > >                     Link Frequency 1: 200MHz
> > > >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> > > >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > > >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> > > >                     Prefetchable memory behind bridge Upper: 00-00
> > > >                     Bus Number: 00
> > > >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> > > >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> > > >             Kernel driver in use: agpgart-amd64
> > > >     
> > > >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 0, Cache Line Size: 64 bytes
> > > >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> > > >             I/O behind bridge: 00002000-00002fff
> > > >             Memory behind bridge: f2100000-f21fffff
> > > >             Prefetchable memory behind bridge: e0000000-efffffff
> > > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> > > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> > > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > > >                             ExtTag+ RBE-
> > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > > >                             ClockPM- Surprise- LLActRep+ BwNot-
> > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> > > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > > >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> > > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > > >                             Changed: MRL- PresDet- LinkState-
> > > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > > >                     RootCap: CRSVisible-
> > > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > > >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> > > >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> > > >                     Address: 00000000  Data: 0000
> > > >             Capabilities: [f4] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: pcieport
> > > >     
> > > >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > > >             Latency: 0
> > > >     
> > > >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 128
> > > >             Interrupt: pin ? routed to IRQ 16
> > > >             Region 0: I/O ports at 01f0 [size=8]
> > > >             Region 1: I/O ports at 03f4
> > > >             Region 2: I/O ports at 0170 [size=8]
> > > >             Region 3: I/O ports at 0374
> > > >             Region 4: I/O ports at 1c80 [size=16]
> > > >             Capabilities: [58] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: pata_sis
> > > >     
> > > >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> > > >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> > > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 173 (13000ns min, 2750ns max)
> > > >             Interrupt: pin C routed to IRQ 18
> > > >             Region 0: I/O ports at 1400 [size=256]
> > > >             Region 1: I/O ports at 1000 [size=128]
> > > >             Capabilities: [48] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: snd_intel8x0
> > > >     
> > > >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (20000ns max)
> > > >             Interrupt: pin A routed to IRQ 20
> > > >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> > > >             Kernel driver in use: ohci-pci
> > > >     
> > > >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (20000ns max)
> > > >             Interrupt: pin B routed to IRQ 21
> > > >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> > > >             Kernel driver in use: ohci-pci
> > > >     
> > > >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (20000ns max)
> > > >             Interrupt: pin C routed to IRQ 22
> > > >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> > > >             Kernel driver in use: ohci-pci
> > > >     
> > > >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > > >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (20000ns max)
> > > >             Interrupt: pin D routed to IRQ 23
> > > >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> > > >             Capabilities: [50] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: ehci-pci
> > > >     
> > > >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64
> > > >             Interrupt: pin A routed to IRQ 17
> > > >             Region 0: I/O ports at 1cb0 [size=8]
> > > >             Region 1: I/O ports at 1ca4 [size=4]
> > > >             Region 2: I/O ports at 1ca8 [size=8]
> > > >             Region 3: I/O ports at 1ca0 [size=4]
> > > >             Region 4: I/O ports at 1c90 [size=16]
> > > >             Region 5: I/O ports at 1c00 [size=128]
> > > >             Capabilities: [58] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: sata_sis
> > > >     
> > > >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 0, Cache Line Size: 64 bytes
> > > >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> > > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> > > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> > > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > > >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> > > >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > > >                     Address: fee0100c  Data: 4181
> > > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > > >                             ExtTag+ RBE-
> > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > > >                             ClockPM- Surprise- LLActRep- BwNot-
> > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > > >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> > > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > > >                             Changed: MRL- PresDet- LinkState-
> > > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > > >                     RootCap: CRSVisible-
> > > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > > >             Capabilities: [f4] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Capabilities: [100 v1] Virtual Channel
> > > >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> > > >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> > > >                     Ctrl:   ArbSelect=Fixed
> > > >                     Status: InProgress-
> > > >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> > > >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> > > >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> > > >                             Status: NegoPending- InProgress-
> > > >             Capabilities: [130 v1] Advanced Error Reporting
> > > >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > > >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > > >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> > > >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > > >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > > >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> > > >             Kernel driver in use: pcieport
> > > >     
> > > >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> > > >             Interrupt: pin A routed to IRQ 19
> > > >             Region 0: I/O ports at 1800 [size=256]
> > > >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> > > >             Capabilities: [dc] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: r8169
> > > >     
> > > >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> > > >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> > > >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > > >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > > >                     Revision ID: 1.02
> > > >                     Link Frequency: 800MHz
> > > >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> > > >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> > > >     
> > > >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >     
> > > >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Kernel driver in use: amd64_edac
> > > >     
> > > >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Kernel driver in use: k8temp
> > > >     
> > > >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> > > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > > >             Latency: 0, Cache Line Size: 64 bytes
> > > >             Interrupt: pin A routed to IRQ 42
> > > >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> > > >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> > > >             Region 4: I/O ports at 2000 [size=256]
> > > >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> > > >             Capabilities: [50] Power Management version 3
> > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > > >                             ClockPM- Surprise- LLActRep- BwNot-
> > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > > >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> > > >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> > > >                              Compliance De-emphasis: -6dB
> > > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > > >                     Address: 00000000fee0100c  Data: 41e1
> > > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > > >             Kernel driver in use: radeon
> > > >     
> > > >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> > > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 0, Cache Line Size: 64 bytes
> > > >             Interrupt: pin B routed to IRQ 41
> > > >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> > > >             Capabilities: [50] Power Management version 3
> > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > > >                             ClockPM- Surprise- LLActRep- BwNot-
> > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > > >                     Address: 00000000fee0100c  Data: 41d1
> > > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > > >             Kernel driver in use: snd_hda_intel
> > > > 
> > > > 
> > > > Grusse,
> > > >  Thomas
> > > 
> > > 
> > > --
> > > To unsubscribe, send a message with 'unsubscribe linux-mm' in
> > > the body to majordomo@kvack.org.  For more info on Linux MM,
> > > see: http://www.linux-mm.org/ .
> > > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

> diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
> index 511fe26..632f796 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -1244,6 +1244,7 @@ int radeon_device_init(struct radeon_device *rdev,
>  		rdev->need_dma32 = true;
>  
>  	dma_bits = rdev->need_dma32 ? 32 : 40;
> +	dma_bits = 32;
>  	r = pci_set_dma_mask(rdev->pdev, DMA_BIT_MASK(dma_bits));
>  	if (r) {
>  		rdev->need_dma32 = true;

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-25 23:03             ` Jerome Glisse
  0 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-25 23:03 UTC (permalink / raw)
  To: Johannes Weiner
  Cc: Andrea Arcangeli, Rik van Riel, Zlatko Calusic, linux-kernel,
	dri-devel, Christian König, linux-mm, Minchan Kim,
	Mel Gorman, Alex Deucher, Andrew Morton, Thomas Schwinge

On Fri, Apr 25, 2014 at 05:50:57PM -0400, Jerome Glisse wrote:
> On Fri, Apr 25, 2014 at 05:47:48PM -0400, Jerome Glisse wrote:
> > On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> > > Hi Thomas,
> > > 
> > > On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > > > Hi!
> > > > 
> > > > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > > > Each zone that holds userspace pages of one workload must be aged at a
> > > > > speed proportional to the zone size.  [...]
> > > > 
> > > > > Fix this with a very simple round robin allocator.  [...]
> > > > 
> > > > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > > > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > > > 
> > > > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > > > and it started to exhibit "strange" issues, which I then bisected to this
> > > > patch.  I'm not saying that the patch is faulty, as it seems to be
> > > > working fine for everyone else, so I rather assume that something in a
> > > > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > > > ;-)
> > > > 
> > > > The issue is that when X.org/lightdm starts up, there are "garbled"
> > > > section on the screen, for example, rectangular boxes that are just black
> > > > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > > > of characters; but not all characters) are displayed as rectangular gray
> > > > or black boxes, and/or icons in a GNOME session are not displayed
> > > > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > > > a Linux console, I can use that one fine.  Switching back to X, in the
> > > > majority of all cases, the screen will be completely black, but with the
> > > > mouse cursor still rendered properly (done in hardware, I assume).
> > > > 
> > > > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > > > top of v3.12, and everything is back to normal.  The problem also
> > > > persists with a v3.14 kernel that I just built.
> > > > 
> > > > I will try to figure out what's going on, but will gladly take any
> > > > pointers, or suggestions about how to tackle such a problem.
> > > > 
> > > > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > > > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > > > using that; instead I put in a Sapphire Radeon HD 4350 card.
> > > 
> > > I went over this code change repeatedly but I could not see anything
> > > directly that would explain it.  However, this patch DOES change the
> > > way allocations are placed (while still respecting zone specifiers
> > > like __GFP_DMA etc.) and so it's possible that they unearthed a
> > > corruption, or a wrongly set dma mask in the drivers.
> > > 
> > > Ccing the radeon driver guys.  Full quote follows.
> > 
> > Can we get a full dmesg, to know if thing like IOMMU are enabled or not.
> > This is even more puzzling as rv710 has 40bit dma mask iirc and thus you
> > should be fine even without IOMMU. But given the patch you point to, it
> > really can only be something that allocate page in place the GPU fails
> > to access.
> > 
> > Thomas how much memory do you have (again dmes will also provide mapping
> > informations) ?
> > 
> > My guess is that the pcie bridge can only remap dma page with 32bit dma
> > mask while the gpu is fine with 40bit dma mask. I always thought that the
> > pcie/pci code did take care of such thing for us.
> > 
> > Cheers,
> > Jérôme Glisse
> 
> Forgot to attach patch to test my theory. Does the attached patch fix
> the issue ?

So this is likely it, the SIS chipset of this motherboard is a freak show.
It support both PCIE and AGP at same time

http://www.newegg.com/Product/Product.aspx?Item=N82E16813185068

Why in hell ?

So my guess is that the root pcie bridge is behind the AGP bridge which
swallow any address > 32bit and thus the dma mask of the pcie radeon
card is just believing that we are living in a sane world.

Cheers,
Jérôme Glisse

> 
> > 
> > > 
> > > >     $ cat < /proc/cpuinfo
> > > >     processor       : 0
> > > >     vendor_id       : AuthenticAMD
> > > >     cpu family      : 15
> > > >     model           : 47
> > > >     model name      : AMD Sempron(tm) Processor 3000+
> > > >     stepping        : 2
> > > >     cpu MHz         : 1000.000
> > > >     cache size      : 128 KB
> > > >     physical id     : 0
> > > >     siblings        : 1
> > > >     core id         : 0
> > > >     cpu cores       : 1
> > > >     apicid          : 0
> > > >     initial apicid  : 0
> > > >     fpu             : yes
> > > >     fpu_exception   : yes
> > > >     cpuid level     : 1
> > > >     wp              : yes
> > > >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> > > >     bogomips        : 2000.20
> > > >     TLB size        : 1024 4K pages
> > > >     clflush size    : 64
> > > >     cache_alignment : 64
> > > >     address sizes   : 40 bits physical, 48 bits virtual
> > > >     power management: ts fid vid ttp tm stc
> > > >     $ sudo lspci -nn -k -vv
> > > >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > > >             Latency: 64
> > > >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> > > >             Capabilities: [a0] AGP version 3.0
> > > >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> > > >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> > > >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> > > >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> > > >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > > >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > > >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > > >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> > > >                     Revision ID: 1.05
> > > >                     Link Frequency 0: 800MHz
> > > >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> > > >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> > > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> > > >                     Link Frequency 1: 200MHz
> > > >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> > > >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > > >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> > > >                     Prefetchable memory behind bridge Upper: 00-00
> > > >                     Bus Number: 00
> > > >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> > > >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> > > >             Kernel driver in use: agpgart-amd64
> > > >     
> > > >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 0, Cache Line Size: 64 bytes
> > > >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> > > >             I/O behind bridge: 00002000-00002fff
> > > >             Memory behind bridge: f2100000-f21fffff
> > > >             Prefetchable memory behind bridge: e0000000-efffffff
> > > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> > > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> > > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > > >                             ExtTag+ RBE-
> > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > > >                             ClockPM- Surprise- LLActRep+ BwNot-
> > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> > > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > > >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> > > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > > >                             Changed: MRL- PresDet- LinkState-
> > > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > > >                     RootCap: CRSVisible-
> > > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > > >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> > > >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> > > >                     Address: 00000000  Data: 0000
> > > >             Capabilities: [f4] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: pcieport
> > > >     
> > > >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > > >             Latency: 0
> > > >     
> > > >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 128
> > > >             Interrupt: pin ? routed to IRQ 16
> > > >             Region 0: I/O ports at 01f0 [size=8]
> > > >             Region 1: I/O ports at 03f4
> > > >             Region 2: I/O ports at 0170 [size=8]
> > > >             Region 3: I/O ports at 0374
> > > >             Region 4: I/O ports at 1c80 [size=16]
> > > >             Capabilities: [58] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: pata_sis
> > > >     
> > > >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> > > >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> > > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 173 (13000ns min, 2750ns max)
> > > >             Interrupt: pin C routed to IRQ 18
> > > >             Region 0: I/O ports at 1400 [size=256]
> > > >             Region 1: I/O ports at 1000 [size=128]
> > > >             Capabilities: [48] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: snd_intel8x0
> > > >     
> > > >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (20000ns max)
> > > >             Interrupt: pin A routed to IRQ 20
> > > >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> > > >             Kernel driver in use: ohci-pci
> > > >     
> > > >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (20000ns max)
> > > >             Interrupt: pin B routed to IRQ 21
> > > >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> > > >             Kernel driver in use: ohci-pci
> > > >     
> > > >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (20000ns max)
> > > >             Interrupt: pin C routed to IRQ 22
> > > >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> > > >             Kernel driver in use: ohci-pci
> > > >     
> > > >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > > >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (20000ns max)
> > > >             Interrupt: pin D routed to IRQ 23
> > > >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> > > >             Capabilities: [50] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: ehci-pci
> > > >     
> > > >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64
> > > >             Interrupt: pin A routed to IRQ 17
> > > >             Region 0: I/O ports at 1cb0 [size=8]
> > > >             Region 1: I/O ports at 1ca4 [size=4]
> > > >             Region 2: I/O ports at 1ca8 [size=8]
> > > >             Region 3: I/O ports at 1ca0 [size=4]
> > > >             Region 4: I/O ports at 1c90 [size=16]
> > > >             Region 5: I/O ports at 1c00 [size=128]
> > > >             Capabilities: [58] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: sata_sis
> > > >     
> > > >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 0, Cache Line Size: 64 bytes
> > > >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> > > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> > > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> > > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > > >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> > > >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > > >                     Address: fee0100c  Data: 4181
> > > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > > >                             ExtTag+ RBE-
> > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > > >                             ClockPM- Surprise- LLActRep- BwNot-
> > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > > >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> > > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > > >                             Changed: MRL- PresDet- LinkState-
> > > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > > >                     RootCap: CRSVisible-
> > > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > > >             Capabilities: [f4] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Capabilities: [100 v1] Virtual Channel
> > > >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> > > >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> > > >                     Ctrl:   ArbSelect=Fixed
> > > >                     Status: InProgress-
> > > >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> > > >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> > > >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> > > >                             Status: NegoPending- InProgress-
> > > >             Capabilities: [130 v1] Advanced Error Reporting
> > > >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > > >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > > >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> > > >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > > >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > > >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> > > >             Kernel driver in use: pcieport
> > > >     
> > > >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> > > >             Interrupt: pin A routed to IRQ 19
> > > >             Region 0: I/O ports at 1800 [size=256]
> > > >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> > > >             Capabilities: [dc] Power Management version 2
> > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Kernel driver in use: r8169
> > > >     
> > > >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> > > >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> > > >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > > >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > > >                     Revision ID: 1.02
> > > >                     Link Frequency: 800MHz
> > > >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> > > >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> > > >     
> > > >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >     
> > > >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Kernel driver in use: amd64_edac
> > > >     
> > > >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Kernel driver in use: k8temp
> > > >     
> > > >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> > > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > > >             Latency: 0, Cache Line Size: 64 bytes
> > > >             Interrupt: pin A routed to IRQ 42
> > > >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> > > >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> > > >             Region 4: I/O ports at 2000 [size=256]
> > > >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> > > >             Capabilities: [50] Power Management version 3
> > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > > >                             ClockPM- Surprise- LLActRep- BwNot-
> > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > > >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> > > >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> > > >                              Compliance De-emphasis: -6dB
> > > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > > >                     Address: 00000000fee0100c  Data: 41e1
> > > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > > >             Kernel driver in use: radeon
> > > >     
> > > >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> > > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > >             Latency: 0, Cache Line Size: 64 bytes
> > > >             Interrupt: pin B routed to IRQ 41
> > > >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> > > >             Capabilities: [50] Power Management version 3
> > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > > >                             ClockPM- Surprise- LLActRep- BwNot-
> > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > > >                     Address: 00000000fee0100c  Data: 41d1
> > > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > > >             Kernel driver in use: snd_hda_intel
> > > > 
> > > > 
> > > > Grüße,
> > > >  Thomas
> > > 
> > > 
> > > --
> > > To unsubscribe, send a message with 'unsubscribe linux-mm' in
> > > the body to majordomo@kvack.org.  For more info on Linux MM,
> > > see: http://www.linux-mm.org/ .
> > > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

> diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
> index 511fe26..632f796 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -1244,6 +1244,7 @@ int radeon_device_init(struct radeon_device *rdev,
>  		rdev->need_dma32 = true;
>  
>  	dma_bits = rdev->need_dma32 ? 32 : 40;
> +	dma_bits = 32;
>  	r = pci_set_dma_mask(rdev->pdev, DMA_BIT_MASK(dma_bits));
>  	if (r) {
>  		rdev->need_dma32 = true;

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2014-04-24 13:37       ` Johannes Weiner
  (?)
@ 2014-04-27  3:31         ` Jerome Glisse
  -1 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-27  3:31 UTC (permalink / raw)
  To: Thomas Schwinge
  Cc: Johannes Weiner, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel,
	Andrew Morton, Alex Deucher, Christian König, dri-devel

On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> Hi Thomas,
> 
> On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > Hi!
> > 
> > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > Each zone that holds userspace pages of one workload must be aged at a
> > > speed proportional to the zone size.  [...]
> > 
> > > Fix this with a very simple round robin allocator.  [...]
> > 
> > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > 
> > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > and it started to exhibit "strange" issues, which I then bisected to this
> > patch.  I'm not saying that the patch is faulty, as it seems to be
> > working fine for everyone else, so I rather assume that something in a
> > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > ;-)
> > 
> > The issue is that when X.org/lightdm starts up, there are "garbled"
> > section on the screen, for example, rectangular boxes that are just black
> > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > of characters; but not all characters) are displayed as rectangular gray
> > or black boxes, and/or icons in a GNOME session are not displayed
> > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > a Linux console, I can use that one fine.  Switching back to X, in the
> > majority of all cases, the screen will be completely black, but with the
> > mouse cursor still rendered properly (done in hardware, I assume).
> > 
> > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > top of v3.12, and everything is back to normal.  The problem also
> > persists with a v3.14 kernel that I just built.
> > 
> > I will try to figure out what's going on, but will gladly take any
> > pointers, or suggestions about how to tackle such a problem.
> > 
> > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > using that; instead I put in a Sapphire Radeon HD 4350 card.
> 
> I went over this code change repeatedly but I could not see anything
> directly that would explain it.  However, this patch DOES change the
> way allocations are placed (while still respecting zone specifiers
> like __GFP_DMA etc.) and so it's possible that they unearthed a
> corruption, or a wrongly set dma mask in the drivers.
> 
> Ccing the radeon driver guys.  Full quote follows.
> 
> >     $ cat < /proc/cpuinfo
> >     processor       : 0
> >     vendor_id       : AuthenticAMD
> >     cpu family      : 15
> >     model           : 47
> >     model name      : AMD Sempron(tm) Processor 3000+
> >     stepping        : 2
> >     cpu MHz         : 1000.000
> >     cache size      : 128 KB
> >     physical id     : 0
> >     siblings        : 1
> >     core id         : 0
> >     cpu cores       : 1
> >     apicid          : 0
> >     initial apicid  : 0
> >     fpu             : yes
> >     fpu_exception   : yes
> >     cpuid level     : 1
> >     wp              : yes
> >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> >     bogomips        : 2000.20
> >     TLB size        : 1024 4K pages
> >     clflush size    : 64
> >     cache_alignment : 64
> >     address sizes   : 40 bits physical, 48 bits virtual
> >     power management: ts fid vid ttp tm stc
> >     $ sudo lspci -nn -k -vv
> >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 64
> >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> >             Capabilities: [a0] AGP version 3.0
> >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> >                     Revision ID: 1.05
> >                     Link Frequency 0: 800MHz
> >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> >                     Link Frequency 1: 200MHz
> >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> >                     Prefetchable memory behind bridge Upper: 00-00
> >                     Bus Number: 00
> >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> >             Kernel driver in use: agpgart-amd64
> >     
> >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> >             I/O behind bridge: 00002000-00002fff
> >             Memory behind bridge: f2100000-f21fffff
> >             Prefetchable memory behind bridge: e0000000-efffffff
> >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> >                             ExtTag+ RBE-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> >                             ClockPM- Surprise- LLActRep+ BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> >                             Changed: MRL- PresDet- LinkState-
> >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> >                     RootCap: CRSVisible-
> >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> >                     Address: 00000000  Data: 0000
> >             Capabilities: [f4] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: pcieport
> >     
> >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 0
> >     
> >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 128
> >             Interrupt: pin ? routed to IRQ 16
> >             Region 0: I/O ports at 01f0 [size=8]
> >             Region 1: I/O ports at 03f4
> >             Region 2: I/O ports at 0170 [size=8]
> >             Region 3: I/O ports at 0374
> >             Region 4: I/O ports at 1c80 [size=16]
> >             Capabilities: [58] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: pata_sis
> >     
> >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 173 (13000ns min, 2750ns max)
> >             Interrupt: pin C routed to IRQ 18
> >             Region 0: I/O ports at 1400 [size=256]
> >             Region 1: I/O ports at 1000 [size=128]
> >             Capabilities: [48] Power Management version 2
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: snd_intel8x0
> >     
> >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin A routed to IRQ 20
> >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin B routed to IRQ 21
> >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin C routed to IRQ 22
> >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin D routed to IRQ 23
> >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> >             Capabilities: [50] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: ehci-pci
> >     
> >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64
> >             Interrupt: pin A routed to IRQ 17
> >             Region 0: I/O ports at 1cb0 [size=8]
> >             Region 1: I/O ports at 1ca4 [size=4]
> >             Region 2: I/O ports at 1ca8 [size=8]
> >             Region 3: I/O ports at 1ca0 [size=4]
> >             Region 4: I/O ports at 1c90 [size=16]
> >             Region 5: I/O ports at 1c00 [size=128]
> >             Capabilities: [58] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: sata_sis
> >     
> >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> >                     Address: fee0100c  Data: 4181
> >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> >                             ExtTag+ RBE-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> >                             Changed: MRL- PresDet- LinkState-
> >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> >                     RootCap: CRSVisible-
> >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >             Capabilities: [f4] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [100 v1] Virtual Channel
> >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> >                     Ctrl:   ArbSelect=Fixed
> >                     Status: InProgress-
> >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> >                             Status: NegoPending- InProgress-
> >             Capabilities: [130 v1] Advanced Error Reporting
> >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> >             Kernel driver in use: pcieport
> >     
> >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> >             Interrupt: pin A routed to IRQ 19
> >             Region 0: I/O ports at 1800 [size=256]
> >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> >             Capabilities: [dc] Power Management version 2
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: r8169
> >     
> >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >                     Revision ID: 1.02
> >                     Link Frequency: 800MHz
> >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> >     
> >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >     
> >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Kernel driver in use: amd64_edac
> >     
> >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Kernel driver in use: k8temp
> >     
> >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Interrupt: pin A routed to IRQ 42
> >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> >             Region 4: I/O ports at 2000 [size=256]
> >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> >             Capabilities: [50] Power Management version 3
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> >                              Compliance De-emphasis: -6dB
> >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >                     Address: 00000000fee0100c  Data: 41e1
> >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> >             Kernel driver in use: radeon
> >     
> >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Interrupt: pin B routed to IRQ 41
> >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> >             Capabilities: [50] Power Management version 3
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >                     Address: 00000000fee0100c  Data: 41d1
> >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> >             Kernel driver in use: snd_hda_intel
> > 
> > 
> > Grüße,
> >  Thomas

Thomas can you provide output of lspci -t

Also did you had a chance to test my ugly patch ?

Cheers,
Jérôme

> 
> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-27  3:31         ` Jerome Glisse
  0 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-27  3:31 UTC (permalink / raw)
  To: Thomas Schwinge
  Cc: Johannes Weiner, Mel Gorman, Rik van Riel, Andrea Arcangeli,
	Zlatko Calusic, Minchan Kim, linux-mm, linux-kernel,
	Andrew Morton, Alex Deucher, Christian König, dri-devel

On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> Hi Thomas,
> 
> On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > Hi!
> > 
> > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > Each zone that holds userspace pages of one workload must be aged at a
> > > speed proportional to the zone size.  [...]
> > 
> > > Fix this with a very simple round robin allocator.  [...]
> > 
> > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > 
> > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > and it started to exhibit "strange" issues, which I then bisected to this
> > patch.  I'm not saying that the patch is faulty, as it seems to be
> > working fine for everyone else, so I rather assume that something in a
> > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > ;-)
> > 
> > The issue is that when X.org/lightdm starts up, there are "garbled"
> > section on the screen, for example, rectangular boxes that are just black
> > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > of characters; but not all characters) are displayed as rectangular gray
> > or black boxes, and/or icons in a GNOME session are not displayed
> > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > a Linux console, I can use that one fine.  Switching back to X, in the
> > majority of all cases, the screen will be completely black, but with the
> > mouse cursor still rendered properly (done in hardware, I assume).
> > 
> > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > top of v3.12, and everything is back to normal.  The problem also
> > persists with a v3.14 kernel that I just built.
> > 
> > I will try to figure out what's going on, but will gladly take any
> > pointers, or suggestions about how to tackle such a problem.
> > 
> > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > using that; instead I put in a Sapphire Radeon HD 4350 card.
> 
> I went over this code change repeatedly but I could not see anything
> directly that would explain it.  However, this patch DOES change the
> way allocations are placed (while still respecting zone specifiers
> like __GFP_DMA etc.) and so it's possible that they unearthed a
> corruption, or a wrongly set dma mask in the drivers.
> 
> Ccing the radeon driver guys.  Full quote follows.
> 
> >     $ cat < /proc/cpuinfo
> >     processor       : 0
> >     vendor_id       : AuthenticAMD
> >     cpu family      : 15
> >     model           : 47
> >     model name      : AMD Sempron(tm) Processor 3000+
> >     stepping        : 2
> >     cpu MHz         : 1000.000
> >     cache size      : 128 KB
> >     physical id     : 0
> >     siblings        : 1
> >     core id         : 0
> >     cpu cores       : 1
> >     apicid          : 0
> >     initial apicid  : 0
> >     fpu             : yes
> >     fpu_exception   : yes
> >     cpuid level     : 1
> >     wp              : yes
> >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> >     bogomips        : 2000.20
> >     TLB size        : 1024 4K pages
> >     clflush size    : 64
> >     cache_alignment : 64
> >     address sizes   : 40 bits physical, 48 bits virtual
> >     power management: ts fid vid ttp tm stc
> >     $ sudo lspci -nn -k -vv
> >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 64
> >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> >             Capabilities: [a0] AGP version 3.0
> >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> >                     Revision ID: 1.05
> >                     Link Frequency 0: 800MHz
> >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> >                     Link Frequency 1: 200MHz
> >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> >                     Prefetchable memory behind bridge Upper: 00-00
> >                     Bus Number: 00
> >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> >             Kernel driver in use: agpgart-amd64
> >     
> >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> >             I/O behind bridge: 00002000-00002fff
> >             Memory behind bridge: f2100000-f21fffff
> >             Prefetchable memory behind bridge: e0000000-efffffff
> >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> >                             ExtTag+ RBE-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> >                             ClockPM- Surprise- LLActRep+ BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> >                             Changed: MRL- PresDet- LinkState-
> >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> >                     RootCap: CRSVisible-
> >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> >                     Address: 00000000  Data: 0000
> >             Capabilities: [f4] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: pcieport
> >     
> >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 0
> >     
> >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 128
> >             Interrupt: pin ? routed to IRQ 16
> >             Region 0: I/O ports at 01f0 [size=8]
> >             Region 1: I/O ports at 03f4
> >             Region 2: I/O ports at 0170 [size=8]
> >             Region 3: I/O ports at 0374
> >             Region 4: I/O ports at 1c80 [size=16]
> >             Capabilities: [58] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: pata_sis
> >     
> >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 173 (13000ns min, 2750ns max)
> >             Interrupt: pin C routed to IRQ 18
> >             Region 0: I/O ports at 1400 [size=256]
> >             Region 1: I/O ports at 1000 [size=128]
> >             Capabilities: [48] Power Management version 2
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: snd_intel8x0
> >     
> >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin A routed to IRQ 20
> >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin B routed to IRQ 21
> >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin C routed to IRQ 22
> >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin D routed to IRQ 23
> >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> >             Capabilities: [50] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: ehci-pci
> >     
> >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64
> >             Interrupt: pin A routed to IRQ 17
> >             Region 0: I/O ports at 1cb0 [size=8]
> >             Region 1: I/O ports at 1ca4 [size=4]
> >             Region 2: I/O ports at 1ca8 [size=8]
> >             Region 3: I/O ports at 1ca0 [size=4]
> >             Region 4: I/O ports at 1c90 [size=16]
> >             Region 5: I/O ports at 1c00 [size=128]
> >             Capabilities: [58] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: sata_sis
> >     
> >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> >                     Address: fee0100c  Data: 4181
> >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> >                             ExtTag+ RBE-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> >                             Changed: MRL- PresDet- LinkState-
> >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> >                     RootCap: CRSVisible-
> >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >             Capabilities: [f4] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [100 v1] Virtual Channel
> >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> >                     Ctrl:   ArbSelect=Fixed
> >                     Status: InProgress-
> >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> >                             Status: NegoPending- InProgress-
> >             Capabilities: [130 v1] Advanced Error Reporting
> >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> >             Kernel driver in use: pcieport
> >     
> >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> >             Interrupt: pin A routed to IRQ 19
> >             Region 0: I/O ports at 1800 [size=256]
> >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> >             Capabilities: [dc] Power Management version 2
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: r8169
> >     
> >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >                     Revision ID: 1.02
> >                     Link Frequency: 800MHz
> >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> >     
> >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >     
> >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Kernel driver in use: amd64_edac
> >     
> >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Kernel driver in use: k8temp
> >     
> >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Interrupt: pin A routed to IRQ 42
> >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> >             Region 4: I/O ports at 2000 [size=256]
> >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> >             Capabilities: [50] Power Management version 3
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> >                              Compliance De-emphasis: -6dB
> >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >                     Address: 00000000fee0100c  Data: 41e1
> >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> >             Kernel driver in use: radeon
> >     
> >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Interrupt: pin B routed to IRQ 41
> >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> >             Capabilities: [50] Power Management version 3
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >                     Address: 00000000fee0100c  Data: 41d1
> >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> >             Kernel driver in use: snd_hda_intel
> > 
> > 
> > Grusse,
> >  Thomas

Thomas can you provide output of lspci -t

Also did you had a chance to test my ugly patch ?

Cheers,
Jerome

> 
> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-27  3:31         ` Jerome Glisse
  0 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-27  3:31 UTC (permalink / raw)
  To: Thomas Schwinge
  Cc: Andrea Arcangeli, Rik van Riel, Zlatko Calusic, linux-kernel,
	dri-devel, linux-mm, Minchan Kim, Mel Gorman, Johannes Weiner,
	Alex Deucher, Andrew Morton, Christian König

On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> Hi Thomas,
> 
> On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > Hi!
> > 
> > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > Each zone that holds userspace pages of one workload must be aged at a
> > > speed proportional to the zone size.  [...]
> > 
> > > Fix this with a very simple round robin allocator.  [...]
> > 
> > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > 
> > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > and it started to exhibit "strange" issues, which I then bisected to this
> > patch.  I'm not saying that the patch is faulty, as it seems to be
> > working fine for everyone else, so I rather assume that something in a
> > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > ;-)
> > 
> > The issue is that when X.org/lightdm starts up, there are "garbled"
> > section on the screen, for example, rectangular boxes that are just black
> > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > of characters; but not all characters) are displayed as rectangular gray
> > or black boxes, and/or icons in a GNOME session are not displayed
> > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > a Linux console, I can use that one fine.  Switching back to X, in the
> > majority of all cases, the screen will be completely black, but with the
> > mouse cursor still rendered properly (done in hardware, I assume).
> > 
> > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > top of v3.12, and everything is back to normal.  The problem also
> > persists with a v3.14 kernel that I just built.
> > 
> > I will try to figure out what's going on, but will gladly take any
> > pointers, or suggestions about how to tackle such a problem.
> > 
> > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > using that; instead I put in a Sapphire Radeon HD 4350 card.
> 
> I went over this code change repeatedly but I could not see anything
> directly that would explain it.  However, this patch DOES change the
> way allocations are placed (while still respecting zone specifiers
> like __GFP_DMA etc.) and so it's possible that they unearthed a
> corruption, or a wrongly set dma mask in the drivers.
> 
> Ccing the radeon driver guys.  Full quote follows.
> 
> >     $ cat < /proc/cpuinfo
> >     processor       : 0
> >     vendor_id       : AuthenticAMD
> >     cpu family      : 15
> >     model           : 47
> >     model name      : AMD Sempron(tm) Processor 3000+
> >     stepping        : 2
> >     cpu MHz         : 1000.000
> >     cache size      : 128 KB
> >     physical id     : 0
> >     siblings        : 1
> >     core id         : 0
> >     cpu cores       : 1
> >     apicid          : 0
> >     initial apicid  : 0
> >     fpu             : yes
> >     fpu_exception   : yes
> >     cpuid level     : 1
> >     wp              : yes
> >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> >     bogomips        : 2000.20
> >     TLB size        : 1024 4K pages
> >     clflush size    : 64
> >     cache_alignment : 64
> >     address sizes   : 40 bits physical, 48 bits virtual
> >     power management: ts fid vid ttp tm stc
> >     $ sudo lspci -nn -k -vv
> >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 64
> >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> >             Capabilities: [a0] AGP version 3.0
> >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> >                     Revision ID: 1.05
> >                     Link Frequency 0: 800MHz
> >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> >                     Link Frequency 1: 200MHz
> >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> >                     Prefetchable memory behind bridge Upper: 00-00
> >                     Bus Number: 00
> >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> >             Kernel driver in use: agpgart-amd64
> >     
> >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> >             I/O behind bridge: 00002000-00002fff
> >             Memory behind bridge: f2100000-f21fffff
> >             Prefetchable memory behind bridge: e0000000-efffffff
> >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> >                             ExtTag+ RBE-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> >                             ClockPM- Surprise- LLActRep+ BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> >                             Changed: MRL- PresDet- LinkState-
> >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> >                     RootCap: CRSVisible-
> >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> >                     Address: 00000000  Data: 0000
> >             Capabilities: [f4] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: pcieport
> >     
> >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 0
> >     
> >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 128
> >             Interrupt: pin ? routed to IRQ 16
> >             Region 0: I/O ports at 01f0 [size=8]
> >             Region 1: I/O ports at 03f4
> >             Region 2: I/O ports at 0170 [size=8]
> >             Region 3: I/O ports at 0374
> >             Region 4: I/O ports at 1c80 [size=16]
> >             Capabilities: [58] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: pata_sis
> >     
> >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 173 (13000ns min, 2750ns max)
> >             Interrupt: pin C routed to IRQ 18
> >             Region 0: I/O ports at 1400 [size=256]
> >             Region 1: I/O ports at 1000 [size=128]
> >             Capabilities: [48] Power Management version 2
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: snd_intel8x0
> >     
> >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin A routed to IRQ 20
> >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin B routed to IRQ 21
> >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin C routed to IRQ 22
> >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> >             Kernel driver in use: ohci-pci
> >     
> >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (20000ns max)
> >             Interrupt: pin D routed to IRQ 23
> >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> >             Capabilities: [50] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: ehci-pci
> >     
> >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64
> >             Interrupt: pin A routed to IRQ 17
> >             Region 0: I/O ports at 1cb0 [size=8]
> >             Region 1: I/O ports at 1ca4 [size=4]
> >             Region 2: I/O ports at 1ca8 [size=8]
> >             Region 3: I/O ports at 1ca0 [size=4]
> >             Region 4: I/O ports at 1c90 [size=16]
> >             Region 5: I/O ports at 1c00 [size=128]
> >             Capabilities: [58] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: sata_sis
> >     
> >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> >                     Address: fee0100c  Data: 4181
> >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> >                             ExtTag+ RBE-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> >                             Changed: MRL- PresDet- LinkState-
> >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> >                     RootCap: CRSVisible-
> >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >             Capabilities: [f4] Power Management version 2
> >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [100 v1] Virtual Channel
> >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> >                     Ctrl:   ArbSelect=Fixed
> >                     Status: InProgress-
> >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> >                             Status: NegoPending- InProgress-
> >             Capabilities: [130 v1] Advanced Error Reporting
> >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> >             Kernel driver in use: pcieport
> >     
> >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> >             Interrupt: pin A routed to IRQ 19
> >             Region 0: I/O ports at 1800 [size=256]
> >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> >             Capabilities: [dc] Power Management version 2
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Kernel driver in use: r8169
> >     
> >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >                     Revision ID: 1.02
> >                     Link Frequency: 800MHz
> >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> >     
> >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >     
> >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Kernel driver in use: amd64_edac
> >     
> >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Kernel driver in use: k8temp
> >     
> >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Interrupt: pin A routed to IRQ 42
> >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> >             Region 4: I/O ports at 2000 [size=256]
> >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> >             Capabilities: [50] Power Management version 3
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> >                              Compliance De-emphasis: -6dB
> >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >                     Address: 00000000fee0100c  Data: 41e1
> >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> >             Kernel driver in use: radeon
> >     
> >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >             Latency: 0, Cache Line Size: 64 bytes
> >             Interrupt: pin B routed to IRQ 41
> >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> >             Capabilities: [50] Power Management version 3
> >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> >                             ClockPM- Surprise- LLActRep- BwNot-
> >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >                     Address: 00000000fee0100c  Data: 41d1
> >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> >             Kernel driver in use: snd_hda_intel
> > 
> > 
> > Grüße,
> >  Thomas

Thomas can you provide output of lspci -t

Also did you had a chance to test my ugly patch ?

Cheers,
Jérôme

> 
> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2014-04-27  3:31         ` Jerome Glisse
  (?)
@ 2014-04-27 19:55           ` Jerome Glisse
  -1 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-27 19:55 UTC (permalink / raw)
  To: Thomas Schwinge
  Cc: Bjorn Helgaas, linux-pci, Johannes Weiner, Mel Gorman,
	Rik van Riel, Andrea Arcangeli, Zlatko Calusic, Minchan Kim,
	linux-mm, linux-kernel, Andrew Morton, Alex Deucher,
	Christian König, dri-devel

On Sat, Apr 26, 2014 at 11:31:11PM -0400, Jerome Glisse wrote:
> On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> > Hi Thomas,
> > 
> > On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > > Hi!
> > > 
> > > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > > Each zone that holds userspace pages of one workload must be aged at a
> > > > speed proportional to the zone size.  [...]
> > > 
> > > > Fix this with a very simple round robin allocator.  [...]
> > > 
> > > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > > 
> > > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > > and it started to exhibit "strange" issues, which I then bisected to this
> > > patch.  I'm not saying that the patch is faulty, as it seems to be
> > > working fine for everyone else, so I rather assume that something in a
> > > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > > ;-)
> > > 
> > > The issue is that when X.org/lightdm starts up, there are "garbled"
> > > section on the screen, for example, rectangular boxes that are just black
> > > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > > of characters; but not all characters) are displayed as rectangular gray
> > > or black boxes, and/or icons in a GNOME session are not displayed
> > > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > > a Linux console, I can use that one fine.  Switching back to X, in the
> > > majority of all cases, the screen will be completely black, but with the
> > > mouse cursor still rendered properly (done in hardware, I assume).
> > > 
> > > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > > top of v3.12, and everything is back to normal.  The problem also
> > > persists with a v3.14 kernel that I just built.
> > > 
> > > I will try to figure out what's going on, but will gladly take any
> > > pointers, or suggestions about how to tackle such a problem.
> > > 
> > > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > > using that; instead I put in a Sapphire Radeon HD 4350 card.
> > 
> > I went over this code change repeatedly but I could not see anything
> > directly that would explain it.  However, this patch DOES change the
> > way allocations are placed (while still respecting zone specifiers
> > like __GFP_DMA etc.) and so it's possible that they unearthed a
> > corruption, or a wrongly set dma mask in the drivers.
> > 
> > Ccing the radeon driver guys.  Full quote follows.
> > 
> > >     $ cat < /proc/cpuinfo
> > >     processor       : 0
> > >     vendor_id       : AuthenticAMD
> > >     cpu family      : 15
> > >     model           : 47
> > >     model name      : AMD Sempron(tm) Processor 3000+
> > >     stepping        : 2
> > >     cpu MHz         : 1000.000
> > >     cache size      : 128 KB
> > >     physical id     : 0
> > >     siblings        : 1
> > >     core id         : 0
> > >     cpu cores       : 1
> > >     apicid          : 0
> > >     initial apicid  : 0
> > >     fpu             : yes
> > >     fpu_exception   : yes
> > >     cpuid level     : 1
> > >     wp              : yes
> > >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> > >     bogomips        : 2000.20
> > >     TLB size        : 1024 4K pages
> > >     clflush size    : 64
> > >     cache_alignment : 64
> > >     address sizes   : 40 bits physical, 48 bits virtual
> > >     power management: ts fid vid ttp tm stc
> > >     $ sudo lspci -nn -k -vv
> > >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 64
> > >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> > >             Capabilities: [a0] AGP version 3.0
> > >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> > >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> > >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> > >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> > >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> > >                     Revision ID: 1.05
> > >                     Link Frequency 0: 800MHz
> > >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> > >                     Link Frequency 1: 200MHz
> > >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> > >                     Prefetchable memory behind bridge Upper: 00-00
> > >                     Bus Number: 00
> > >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> > >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> > >             Kernel driver in use: agpgart-amd64
> > >     
> > >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> > >             I/O behind bridge: 00002000-00002fff
> > >             Memory behind bridge: f2100000-f21fffff
> > >             Prefetchable memory behind bridge: e0000000-efffffff
> > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >                             ExtTag+ RBE-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > >                             ClockPM- Surprise- LLActRep+ BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > >                             Changed: MRL- PresDet- LinkState-
> > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > >                     RootCap: CRSVisible-
> > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> > >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> > >                     Address: 00000000  Data: 0000
> > >             Capabilities: [f4] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: pcieport
> > >     
> > >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 0
> > >     
> > >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 128
> > >             Interrupt: pin ? routed to IRQ 16
> > >             Region 0: I/O ports at 01f0 [size=8]
> > >             Region 1: I/O ports at 03f4
> > >             Region 2: I/O ports at 0170 [size=8]
> > >             Region 3: I/O ports at 0374
> > >             Region 4: I/O ports at 1c80 [size=16]
> > >             Capabilities: [58] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: pata_sis
> > >     
> > >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> > >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 173 (13000ns min, 2750ns max)
> > >             Interrupt: pin C routed to IRQ 18
> > >             Region 0: I/O ports at 1400 [size=256]
> > >             Region 1: I/O ports at 1000 [size=128]
> > >             Capabilities: [48] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: snd_intel8x0
> > >     
> > >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin A routed to IRQ 20
> > >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin B routed to IRQ 21
> > >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin C routed to IRQ 22
> > >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin D routed to IRQ 23
> > >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> > >             Capabilities: [50] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: ehci-pci
> > >     
> > >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64
> > >             Interrupt: pin A routed to IRQ 17
> > >             Region 0: I/O ports at 1cb0 [size=8]
> > >             Region 1: I/O ports at 1ca4 [size=4]
> > >             Region 2: I/O ports at 1ca8 [size=8]
> > >             Region 3: I/O ports at 1ca0 [size=4]
> > >             Region 4: I/O ports at 1c90 [size=16]
> > >             Region 5: I/O ports at 1c00 [size=128]
> > >             Capabilities: [58] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: sata_sis
> > >     
> > >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> > >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > >                     Address: fee0100c  Data: 4181
> > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >                             ExtTag+ RBE-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > >                             Changed: MRL- PresDet- LinkState-
> > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > >                     RootCap: CRSVisible-
> > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >             Capabilities: [f4] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [100 v1] Virtual Channel
> > >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> > >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> > >                     Ctrl:   ArbSelect=Fixed
> > >                     Status: InProgress-
> > >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> > >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> > >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> > >                             Status: NegoPending- InProgress-
> > >             Capabilities: [130 v1] Advanced Error Reporting
> > >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> > >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> > >             Kernel driver in use: pcieport
> > >     
> > >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> > >             Interrupt: pin A routed to IRQ 19
> > >             Region 0: I/O ports at 1800 [size=256]
> > >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> > >             Capabilities: [dc] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: r8169
> > >     
> > >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> > >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> > >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >                     Revision ID: 1.02
> > >                     Link Frequency: 800MHz
> > >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> > >     
> > >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >     
> > >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Kernel driver in use: amd64_edac
> > >     
> > >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Kernel driver in use: k8temp
> > >     
> > >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Interrupt: pin A routed to IRQ 42
> > >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> > >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> > >             Region 4: I/O ports at 2000 [size=256]
> > >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> > >             Capabilities: [50] Power Management version 3
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> > >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> > >                              Compliance De-emphasis: -6dB
> > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >                     Address: 00000000fee0100c  Data: 41e1
> > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > >             Kernel driver in use: radeon
> > >     
> > >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Interrupt: pin B routed to IRQ 41
> > >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> > >             Capabilities: [50] Power Management version 3
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >                     Address: 00000000fee0100c  Data: 41d1
> > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > >             Kernel driver in use: snd_hda_intel
> > > 
> > > 
> > > Grüße,
> > >  Thomas
> 
> Thomas can you provide output of lspci -t
> 
> Also did you had a chance to test my ugly patch ?
> 
> Cheers,
> Jérôme

If my ugly patch works does this quirk also work ?

-- 
>From 4a2ed6114cd774e502bab24515988fa1d8366762 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= <jglisse@redhat.com>
Date: Sun, 27 Apr 2014 15:48:57 -0400
Subject: [PATCH] pci: quirk for pci bridge behind hypertransport link with
 32bits addressing.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It seems some PCI or PCIE bridge are behind HyperTransport that do not
support 64bits addressing but only 32bit (even though the HyperTransport
specification state that it should 40bit at least). This patch add a
quirk that walk the parent chain of a device before setting the dma mask
so that any dma allocation/mapping will fit inside the limit of any
HyperTransport link that might be in front of the PCI/PCIE root complex.

Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
---
 drivers/pci/quirks.c                 | 36 ++++++++++++++++++++++++++++++++++++
 include/asm-generic/pci-dma-compat.h | 26 ++++++++++++++++++++++++++
 2 files changed, 62 insertions(+)

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index e729206..373ae05 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2447,6 +2447,42 @@ out:
 	pci_dev_put(host_bridge);
 }
 
+#define  PCI_HT_LCTR_64B	0x8000	/* 64-bit Addressing Enable */
+
+u64 pci_ht_quirk_dma_32bit_only(struct pci_dev *dev, u64 mask)
+{
+	struct pci_bus *bus = dev->bus;
+
+	do {
+		struct pci_dev *bridge = bus->self;
+		int pos;
+
+		pos = pci_find_ht_capability(bridge, HT_CAPTYPE_SLAVE);
+		if (pos) {
+			int ctrl_off;
+			u16 flags, ctrl;
+
+			/* See hypertransport specification about master host
+			 * (section 7.5.3.2 in HTC200393).
+			 */
+			pci_read_config_word(dev, pos + PCI_CAP_FLAGS, &flags);
+			ctrl_off = ((flags >> 10) & 1) ?
+				PCI_HT_CAP_SLAVE_CTRL0 : PCI_HT_CAP_SLAVE_CTRL1;
+			pci_read_config_word(dev, pos + ctrl_off, &ctrl);
+			if (!(ctrl & PCI_HT_LCTR_64B)) {
+				/* So 32bits only. Maybe there is one more bug
+				 * as HyperTransport specification says that it
+				 * should be 40bits.
+				 */
+				return 0xffffffff;
+			}
+		}
+		bus = bus->parent;
+	} while (bus);
+	return mask;
+}
+EXPORT_SYMBOL(pci_ht_quirk_dma_32bit_only);
+
 static void ht_disable_msi_mapping(struct pci_dev *dev)
 {
 	int pos, ttl = 48;
diff --git a/include/asm-generic/pci-dma-compat.h b/include/asm-generic/pci-dma-compat.h
index 1437b7d..bae17bb 100644
--- a/include/asm-generic/pci-dma-compat.h
+++ b/include/asm-generic/pci-dma-compat.h
@@ -102,13 +102,39 @@ pci_dma_mapping_error(struct pci_dev *pdev, dma_addr_t dma_addr)
 }
 
 #ifdef CONFIG_PCI
+
+#ifdef CONFIG_PCI_QUIRKS
+u64 pci_ht_quirk_dma_32bit_only(struct pci_dev *dev, u64 mask);
+#else
+static inline u64 pci_ht_quirk_dma_32bit_only(struct pci_dev *dev, u64 mask)
+{
+	return mask;
+}
+#endif
+
 static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
 {
+	/* We are living in a monstruous world in which you can have the pci
+	 * root complex behind an hypertransport link which can not address
+	 * anything above 32bit (well hypertransport specification says 40bits
+	 * but hardware such as SIS761 only support 32bits).
+	 *
+	 * So if a device set a mask bigger than 32bit walk the chain of its
+	 * parent to see if any is behind a transportlink and if so check that
+	 * the transport link support 64bits.
+	 */
+	if (mask & (1ULL << 32ULL)) {
+		mask = pci_ht_quirk_dma_32bit_only(dev, mask);
+	}
 	return dma_set_mask(&dev->dev, mask);
 }
 
 static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
 {
+	/* See comment in pci_set_dma_mask */
+	if (mask & (1ULL << 32ULL)) {
+		mask = pci_ht_quirk_dma_32bit_only(dev, mask);
+	}
 	return dma_set_coherent_mask(&dev->dev, mask);
 }
 #endif
-- 
1.9.0

^ permalink raw reply related	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-27 19:55           ` Jerome Glisse
  0 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-27 19:55 UTC (permalink / raw)
  To: Thomas Schwinge
  Cc: Bjorn Helgaas, linux-pci, Johannes Weiner, Mel Gorman,
	Rik van Riel, Andrea Arcangeli, Zlatko Calusic, Minchan Kim,
	linux-mm, linux-kernel, Andrew Morton, Alex Deucher,
	Christian König, dri-devel

On Sat, Apr 26, 2014 at 11:31:11PM -0400, Jerome Glisse wrote:
> On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> > Hi Thomas,
> > 
> > On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > > Hi!
> > > 
> > > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > > Each zone that holds userspace pages of one workload must be aged at a
> > > > speed proportional to the zone size.  [...]
> > > 
> > > > Fix this with a very simple round robin allocator.  [...]
> > > 
> > > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > > 
> > > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > > and it started to exhibit "strange" issues, which I then bisected to this
> > > patch.  I'm not saying that the patch is faulty, as it seems to be
> > > working fine for everyone else, so I rather assume that something in a
> > > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > > ;-)
> > > 
> > > The issue is that when X.org/lightdm starts up, there are "garbled"
> > > section on the screen, for example, rectangular boxes that are just black
> > > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > > of characters; but not all characters) are displayed as rectangular gray
> > > or black boxes, and/or icons in a GNOME session are not displayed
> > > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > > a Linux console, I can use that one fine.  Switching back to X, in the
> > > majority of all cases, the screen will be completely black, but with the
> > > mouse cursor still rendered properly (done in hardware, I assume).
> > > 
> > > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > > top of v3.12, and everything is back to normal.  The problem also
> > > persists with a v3.14 kernel that I just built.
> > > 
> > > I will try to figure out what's going on, but will gladly take any
> > > pointers, or suggestions about how to tackle such a problem.
> > > 
> > > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > > using that; instead I put in a Sapphire Radeon HD 4350 card.
> > 
> > I went over this code change repeatedly but I could not see anything
> > directly that would explain it.  However, this patch DOES change the
> > way allocations are placed (while still respecting zone specifiers
> > like __GFP_DMA etc.) and so it's possible that they unearthed a
> > corruption, or a wrongly set dma mask in the drivers.
> > 
> > Ccing the radeon driver guys.  Full quote follows.
> > 
> > >     $ cat < /proc/cpuinfo
> > >     processor       : 0
> > >     vendor_id       : AuthenticAMD
> > >     cpu family      : 15
> > >     model           : 47
> > >     model name      : AMD Sempron(tm) Processor 3000+
> > >     stepping        : 2
> > >     cpu MHz         : 1000.000
> > >     cache size      : 128 KB
> > >     physical id     : 0
> > >     siblings        : 1
> > >     core id         : 0
> > >     cpu cores       : 1
> > >     apicid          : 0
> > >     initial apicid  : 0
> > >     fpu             : yes
> > >     fpu_exception   : yes
> > >     cpuid level     : 1
> > >     wp              : yes
> > >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> > >     bogomips        : 2000.20
> > >     TLB size        : 1024 4K pages
> > >     clflush size    : 64
> > >     cache_alignment : 64
> > >     address sizes   : 40 bits physical, 48 bits virtual
> > >     power management: ts fid vid ttp tm stc
> > >     $ sudo lspci -nn -k -vv
> > >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 64
> > >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> > >             Capabilities: [a0] AGP version 3.0
> > >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> > >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> > >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> > >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> > >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> > >                     Revision ID: 1.05
> > >                     Link Frequency 0: 800MHz
> > >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> > >                     Link Frequency 1: 200MHz
> > >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> > >                     Prefetchable memory behind bridge Upper: 00-00
> > >                     Bus Number: 00
> > >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> > >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> > >             Kernel driver in use: agpgart-amd64
> > >     
> > >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> > >             I/O behind bridge: 00002000-00002fff
> > >             Memory behind bridge: f2100000-f21fffff
> > >             Prefetchable memory behind bridge: e0000000-efffffff
> > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >                             ExtTag+ RBE-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > >                             ClockPM- Surprise- LLActRep+ BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > >                             Changed: MRL- PresDet- LinkState-
> > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > >                     RootCap: CRSVisible-
> > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> > >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> > >                     Address: 00000000  Data: 0000
> > >             Capabilities: [f4] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: pcieport
> > >     
> > >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 0
> > >     
> > >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 128
> > >             Interrupt: pin ? routed to IRQ 16
> > >             Region 0: I/O ports at 01f0 [size=8]
> > >             Region 1: I/O ports at 03f4
> > >             Region 2: I/O ports at 0170 [size=8]
> > >             Region 3: I/O ports at 0374
> > >             Region 4: I/O ports at 1c80 [size=16]
> > >             Capabilities: [58] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: pata_sis
> > >     
> > >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> > >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 173 (13000ns min, 2750ns max)
> > >             Interrupt: pin C routed to IRQ 18
> > >             Region 0: I/O ports at 1400 [size=256]
> > >             Region 1: I/O ports at 1000 [size=128]
> > >             Capabilities: [48] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: snd_intel8x0
> > >     
> > >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin A routed to IRQ 20
> > >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin B routed to IRQ 21
> > >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin C routed to IRQ 22
> > >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin D routed to IRQ 23
> > >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> > >             Capabilities: [50] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: ehci-pci
> > >     
> > >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64
> > >             Interrupt: pin A routed to IRQ 17
> > >             Region 0: I/O ports at 1cb0 [size=8]
> > >             Region 1: I/O ports at 1ca4 [size=4]
> > >             Region 2: I/O ports at 1ca8 [size=8]
> > >             Region 3: I/O ports at 1ca0 [size=4]
> > >             Region 4: I/O ports at 1c90 [size=16]
> > >             Region 5: I/O ports at 1c00 [size=128]
> > >             Capabilities: [58] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: sata_sis
> > >     
> > >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> > >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > >                     Address: fee0100c  Data: 4181
> > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >                             ExtTag+ RBE-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > >                             Changed: MRL- PresDet- LinkState-
> > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > >                     RootCap: CRSVisible-
> > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >             Capabilities: [f4] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [100 v1] Virtual Channel
> > >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> > >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> > >                     Ctrl:   ArbSelect=Fixed
> > >                     Status: InProgress-
> > >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> > >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> > >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> > >                             Status: NegoPending- InProgress-
> > >             Capabilities: [130 v1] Advanced Error Reporting
> > >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> > >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> > >             Kernel driver in use: pcieport
> > >     
> > >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> > >             Interrupt: pin A routed to IRQ 19
> > >             Region 0: I/O ports at 1800 [size=256]
> > >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> > >             Capabilities: [dc] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: r8169
> > >     
> > >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> > >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> > >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >                     Revision ID: 1.02
> > >                     Link Frequency: 800MHz
> > >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> > >     
> > >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >     
> > >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Kernel driver in use: amd64_edac
> > >     
> > >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Kernel driver in use: k8temp
> > >     
> > >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Interrupt: pin A routed to IRQ 42
> > >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> > >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> > >             Region 4: I/O ports at 2000 [size=256]
> > >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> > >             Capabilities: [50] Power Management version 3
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> > >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> > >                              Compliance De-emphasis: -6dB
> > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >                     Address: 00000000fee0100c  Data: 41e1
> > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > >             Kernel driver in use: radeon
> > >     
> > >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Interrupt: pin B routed to IRQ 41
> > >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> > >             Capabilities: [50] Power Management version 3
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >                     Address: 00000000fee0100c  Data: 41d1
> > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > >             Kernel driver in use: snd_hda_intel
> > > 
> > > 
> > > Grusse,
> > >  Thomas
> 
> Thomas can you provide output of lspci -t
> 
> Also did you had a chance to test my ugly patch ?
> 
> Cheers,
> Jerome

If my ugly patch works does this quirk also work ?

-- 

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-27 19:55           ` Jerome Glisse
  0 siblings, 0 replies; 82+ messages in thread
From: Jerome Glisse @ 2014-04-27 19:55 UTC (permalink / raw)
  To: Thomas Schwinge
  Cc: Bjorn Helgaas, linux-pci, Johannes Weiner, Mel Gorman,
	Rik van Riel, Andrea Arcangeli, Zlatko Calusic, Minchan Kim,
	linux-mm, linux-kernel, Andrew Morton, Alex Deucher,
	Christian König, dri-devel

On Sat, Apr 26, 2014 at 11:31:11PM -0400, Jerome Glisse wrote:
> On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> > Hi Thomas,
> > 
> > On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > > Hi!
> > > 
> > > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > > Each zone that holds userspace pages of one workload must be aged at a
> > > > speed proportional to the zone size.  [...]
> > > 
> > > > Fix this with a very simple round robin allocator.  [...]
> > > 
> > > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > > 
> > > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > > and it started to exhibit "strange" issues, which I then bisected to this
> > > patch.  I'm not saying that the patch is faulty, as it seems to be
> > > working fine for everyone else, so I rather assume that something in a
> > > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > > ;-)
> > > 
> > > The issue is that when X.org/lightdm starts up, there are "garbled"
> > > section on the screen, for example, rectangular boxes that are just black
> > > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > > of characters; but not all characters) are displayed as rectangular gray
> > > or black boxes, and/or icons in a GNOME session are not displayed
> > > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > > a Linux console, I can use that one fine.  Switching back to X, in the
> > > majority of all cases, the screen will be completely black, but with the
> > > mouse cursor still rendered properly (done in hardware, I assume).
> > > 
> > > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > > top of v3.12, and everything is back to normal.  The problem also
> > > persists with a v3.14 kernel that I just built.
> > > 
> > > I will try to figure out what's going on, but will gladly take any
> > > pointers, or suggestions about how to tackle such a problem.
> > > 
> > > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > > using that; instead I put in a Sapphire Radeon HD 4350 card.
> > 
> > I went over this code change repeatedly but I could not see anything
> > directly that would explain it.  However, this patch DOES change the
> > way allocations are placed (while still respecting zone specifiers
> > like __GFP_DMA etc.) and so it's possible that they unearthed a
> > corruption, or a wrongly set dma mask in the drivers.
> > 
> > Ccing the radeon driver guys.  Full quote follows.
> > 
> > >     $ cat < /proc/cpuinfo
> > >     processor       : 0
> > >     vendor_id       : AuthenticAMD
> > >     cpu family      : 15
> > >     model           : 47
> > >     model name      : AMD Sempron(tm) Processor 3000+
> > >     stepping        : 2
> > >     cpu MHz         : 1000.000
> > >     cache size      : 128 KB
> > >     physical id     : 0
> > >     siblings        : 1
> > >     core id         : 0
> > >     cpu cores       : 1
> > >     apicid          : 0
> > >     initial apicid  : 0
> > >     fpu             : yes
> > >     fpu_exception   : yes
> > >     cpuid level     : 1
> > >     wp              : yes
> > >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> > >     bogomips        : 2000.20
> > >     TLB size        : 1024 4K pages
> > >     clflush size    : 64
> > >     cache_alignment : 64
> > >     address sizes   : 40 bits physical, 48 bits virtual
> > >     power management: ts fid vid ttp tm stc
> > >     $ sudo lspci -nn -k -vv
> > >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 64
> > >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> > >             Capabilities: [a0] AGP version 3.0
> > >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> > >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> > >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> > >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> > >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> > >                     Revision ID: 1.05
> > >                     Link Frequency 0: 800MHz
> > >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> > >                     Link Frequency 1: 200MHz
> > >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> > >                     Prefetchable memory behind bridge Upper: 00-00
> > >                     Bus Number: 00
> > >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> > >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> > >             Kernel driver in use: agpgart-amd64
> > >     
> > >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> > >             I/O behind bridge: 00002000-00002fff
> > >             Memory behind bridge: f2100000-f21fffff
> > >             Prefetchable memory behind bridge: e0000000-efffffff
> > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >                             ExtTag+ RBE-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > >                             ClockPM- Surprise- LLActRep+ BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > >                             Changed: MRL- PresDet- LinkState-
> > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > >                     RootCap: CRSVisible-
> > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> > >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> > >                     Address: 00000000  Data: 0000
> > >             Capabilities: [f4] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: pcieport
> > >     
> > >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 0
> > >     
> > >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 128
> > >             Interrupt: pin ? routed to IRQ 16
> > >             Region 0: I/O ports at 01f0 [size=8]
> > >             Region 1: I/O ports at 03f4
> > >             Region 2: I/O ports at 0170 [size=8]
> > >             Region 3: I/O ports at 0374
> > >             Region 4: I/O ports at 1c80 [size=16]
> > >             Capabilities: [58] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: pata_sis
> > >     
> > >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> > >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 173 (13000ns min, 2750ns max)
> > >             Interrupt: pin C routed to IRQ 18
> > >             Region 0: I/O ports at 1400 [size=256]
> > >             Region 1: I/O ports at 1000 [size=128]
> > >             Capabilities: [48] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: snd_intel8x0
> > >     
> > >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin A routed to IRQ 20
> > >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin B routed to IRQ 21
> > >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin C routed to IRQ 22
> > >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> > >             Kernel driver in use: ohci-pci
> > >     
> > >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (20000ns max)
> > >             Interrupt: pin D routed to IRQ 23
> > >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> > >             Capabilities: [50] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: ehci-pci
> > >     
> > >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64
> > >             Interrupt: pin A routed to IRQ 17
> > >             Region 0: I/O ports at 1cb0 [size=8]
> > >             Region 1: I/O ports at 1ca4 [size=4]
> > >             Region 2: I/O ports at 1ca8 [size=8]
> > >             Region 3: I/O ports at 1ca0 [size=4]
> > >             Region 4: I/O ports at 1c90 [size=16]
> > >             Region 5: I/O ports at 1c00 [size=128]
> > >             Capabilities: [58] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: sata_sis
> > >     
> > >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> > >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > >                     Address: fee0100c  Data: 4181
> > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >                             ExtTag+ RBE-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > >                             Changed: MRL- PresDet- LinkState-
> > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > >                     RootCap: CRSVisible-
> > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >             Capabilities: [f4] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [100 v1] Virtual Channel
> > >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> > >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> > >                     Ctrl:   ArbSelect=Fixed
> > >                     Status: InProgress-
> > >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> > >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> > >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> > >                             Status: NegoPending- InProgress-
> > >             Capabilities: [130 v1] Advanced Error Reporting
> > >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> > >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> > >             Kernel driver in use: pcieport
> > >     
> > >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> > >             Interrupt: pin A routed to IRQ 19
> > >             Region 0: I/O ports at 1800 [size=256]
> > >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> > >             Capabilities: [dc] Power Management version 2
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Kernel driver in use: r8169
> > >     
> > >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> > >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> > >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >                     Revision ID: 1.02
> > >                     Link Frequency: 800MHz
> > >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> > >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> > >     
> > >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >     
> > >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Kernel driver in use: amd64_edac
> > >     
> > >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Kernel driver in use: k8temp
> > >     
> > >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Interrupt: pin A routed to IRQ 42
> > >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> > >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> > >             Region 4: I/O ports at 2000 [size=256]
> > >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> > >             Capabilities: [50] Power Management version 3
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> > >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> > >                              Compliance De-emphasis: -6dB
> > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >                     Address: 00000000fee0100c  Data: 41e1
> > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > >             Kernel driver in use: radeon
> > >     
> > >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >             Latency: 0, Cache Line Size: 64 bytes
> > >             Interrupt: pin B routed to IRQ 41
> > >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> > >             Capabilities: [50] Power Management version 3
> > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > >                             ClockPM- Surprise- LLActRep- BwNot-
> > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >                     Address: 00000000fee0100c  Data: 41d1
> > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > >             Kernel driver in use: snd_hda_intel
> > > 
> > > 
> > > Grüße,
> > >  Thomas
> 
> Thomas can you provide output of lspci -t
> 
> Also did you had a chance to test my ugly patch ?
> 
> Cheers,
> Jérôme

If my ugly patch works does this quirk also work ?

-- 
>From 4a2ed6114cd774e502bab24515988fa1d8366762 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= <jglisse@redhat.com>
Date: Sun, 27 Apr 2014 15:48:57 -0400
Subject: [PATCH] pci: quirk for pci bridge behind hypertransport link with
 32bits addressing.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It seems some PCI or PCIE bridge are behind HyperTransport that do not
support 64bits addressing but only 32bit (even though the HyperTransport
specification state that it should 40bit at least). This patch add a
quirk that walk the parent chain of a device before setting the dma mask
so that any dma allocation/mapping will fit inside the limit of any
HyperTransport link that might be in front of the PCI/PCIE root complex.

Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
---
 drivers/pci/quirks.c                 | 36 ++++++++++++++++++++++++++++++++++++
 include/asm-generic/pci-dma-compat.h | 26 ++++++++++++++++++++++++++
 2 files changed, 62 insertions(+)

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index e729206..373ae05 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2447,6 +2447,42 @@ out:
 	pci_dev_put(host_bridge);
 }
 
+#define  PCI_HT_LCTR_64B	0x8000	/* 64-bit Addressing Enable */
+
+u64 pci_ht_quirk_dma_32bit_only(struct pci_dev *dev, u64 mask)
+{
+	struct pci_bus *bus = dev->bus;
+
+	do {
+		struct pci_dev *bridge = bus->self;
+		int pos;
+
+		pos = pci_find_ht_capability(bridge, HT_CAPTYPE_SLAVE);
+		if (pos) {
+			int ctrl_off;
+			u16 flags, ctrl;
+
+			/* See hypertransport specification about master host
+			 * (section 7.5.3.2 in HTC200393).
+			 */
+			pci_read_config_word(dev, pos + PCI_CAP_FLAGS, &flags);
+			ctrl_off = ((flags >> 10) & 1) ?
+				PCI_HT_CAP_SLAVE_CTRL0 : PCI_HT_CAP_SLAVE_CTRL1;
+			pci_read_config_word(dev, pos + ctrl_off, &ctrl);
+			if (!(ctrl & PCI_HT_LCTR_64B)) {
+				/* So 32bits only. Maybe there is one more bug
+				 * as HyperTransport specification says that it
+				 * should be 40bits.
+				 */
+				return 0xffffffff;
+			}
+		}
+		bus = bus->parent;
+	} while (bus);
+	return mask;
+}
+EXPORT_SYMBOL(pci_ht_quirk_dma_32bit_only);
+
 static void ht_disable_msi_mapping(struct pci_dev *dev)
 {
 	int pos, ttl = 48;
diff --git a/include/asm-generic/pci-dma-compat.h b/include/asm-generic/pci-dma-compat.h
index 1437b7d..bae17bb 100644
--- a/include/asm-generic/pci-dma-compat.h
+++ b/include/asm-generic/pci-dma-compat.h
@@ -102,13 +102,39 @@ pci_dma_mapping_error(struct pci_dev *pdev, dma_addr_t dma_addr)
 }
 
 #ifdef CONFIG_PCI
+
+#ifdef CONFIG_PCI_QUIRKS
+u64 pci_ht_quirk_dma_32bit_only(struct pci_dev *dev, u64 mask);
+#else
+static inline u64 pci_ht_quirk_dma_32bit_only(struct pci_dev *dev, u64 mask)
+{
+	return mask;
+}
+#endif
+
 static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
 {
+	/* We are living in a monstruous world in which you can have the pci
+	 * root complex behind an hypertransport link which can not address
+	 * anything above 32bit (well hypertransport specification says 40bits
+	 * but hardware such as SIS761 only support 32bits).
+	 *
+	 * So if a device set a mask bigger than 32bit walk the chain of its
+	 * parent to see if any is behind a transportlink and if so check that
+	 * the transport link support 64bits.
+	 */
+	if (mask & (1ULL << 32ULL)) {
+		mask = pci_ht_quirk_dma_32bit_only(dev, mask);
+	}
 	return dma_set_mask(&dev->dev, mask);
 }
 
 static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
 {
+	/* See comment in pci_set_dma_mask */
+	if (mask & (1ULL << 32ULL)) {
+		mask = pci_ht_quirk_dma_32bit_only(dev, mask);
+	}
 	return dma_set_coherent_mask(&dev->dev, mask);
 }
 #endif
-- 
1.9.0

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply related	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2014-04-27 19:55           ` Jerome Glisse
@ 2014-04-28  7:30             ` Christian König
  -1 siblings, 0 replies; 82+ messages in thread
From: Christian König @ 2014-04-28  7:30 UTC (permalink / raw)
  To: Jerome Glisse, Thomas Schwinge
  Cc: Bjorn Helgaas, linux-pci, Johannes Weiner, Mel Gorman,
	Rik van Riel, Andrea Arcangeli, Zlatko Calusic, Minchan Kim,
	linux-mm, linux-kernel, Andrew Morton, Alex Deucher, dri-devel

> +	/* We are living in a monstruous world in which you can have the pci
> +	 * root complex behind an hypertransport link which can not address
> +	 * anything above 32bit (well hypertransport specification says 40bits
> +	 * but hardware such as SIS761 only support 32bits).
That looks more like a problem with this specific chipset rather than 
something that needs a general solution like this.

Maybe we should rather add the PCI-ID(s) of the thing to some kind of 
quirks table for now so that the patch isn't so invasive and we can CC 
stable as well?

Just a thought,
Christian.

Am 27.04.2014 21:55, schrieb Jerome Glisse:
> On Sat, Apr 26, 2014 at 11:31:11PM -0400, Jerome Glisse wrote:
>> On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
>>> Hi Thomas,
>>>
>>> On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
>>>> Hi!
>>>>
>>>> On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
>>>>> Each zone that holds userspace pages of one workload must be aged at a
>>>>> speed proportional to the zone size.  [...]
>>>>> Fix this with a very simple round robin allocator.  [...]
>>>> This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
>>>> commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
>>>>
>>>> I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
>>>> and it started to exhibit "strange" issues, which I then bisected to this
>>>> patch.  I'm not saying that the patch is faulty, as it seems to be
>>>> working fine for everyone else, so I rather assume that something in a
>>>> (vastly?) different corner of the kernel (or my hardware?) is broken.
>>>> ;-)
>>>>
>>>> The issue is that when X.org/lightdm starts up, there are "garbled"
>>>> section on the screen, for example, rectangular boxes that are just black
>>>> or otherwise "distorted", and/or sets of glyphs (corresponding to a set
>>>> of characters; but not all characters) are displayed as rectangular gray
>>>> or black boxes, and/or icons in a GNOME session are not displayed
>>>> properly, and so on.  (Can take a snapshot if that helps?)  Switching to
>>>> a Linux console, I can use that one fine.  Switching back to X, in the
>>>> majority of all cases, the screen will be completely black, but with the
>>>> mouse cursor still rendered properly (done in hardware, I assume).
>>>>
>>>> Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
>>>> top of v3.12, and everything is back to normal.  The problem also
>>>> persists with a v3.14 kernel that I just built.
>>>>
>>>> I will try to figure out what's going on, but will gladly take any
>>>> pointers, or suggestions about how to tackle such a problem.
>>>>
>>>> The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
>>>> AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
>>>> using that; instead I put in a Sapphire Radeon HD 4350 card.
>>> I went over this code change repeatedly but I could not see anything
>>> directly that would explain it.  However, this patch DOES change the
>>> way allocations are placed (while still respecting zone specifiers
>>> like __GFP_DMA etc.) and so it's possible that they unearthed a
>>> corruption, or a wrongly set dma mask in the drivers.
>>>
>>> Ccing the radeon driver guys.  Full quote follows.
>>>
>>>>      $ cat < /proc/cpuinfo
>>>>      processor       : 0
>>>>      vendor_id       : AuthenticAMD
>>>>      cpu family      : 15
>>>>      model           : 47
>>>>      model name      : AMD Sempron(tm) Processor 3000+
>>>>      stepping        : 2
>>>>      cpu MHz         : 1000.000
>>>>      cache size      : 128 KB
>>>>      physical id     : 0
>>>>      siblings        : 1
>>>>      core id         : 0
>>>>      cpu cores       : 1
>>>>      apicid          : 0
>>>>      initial apicid  : 0
>>>>      fpu             : yes
>>>>      fpu_exception   : yes
>>>>      cpuid level     : 1
>>>>      wp              : yes
>>>>      flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
>>>>      bogomips        : 2000.20
>>>>      TLB size        : 1024 4K pages
>>>>      clflush size    : 64
>>>>      cache_alignment : 64
>>>>      address sizes   : 40 bits physical, 48 bits virtual
>>>>      power management: ts fid vid ttp tm stc
>>>>      $ sudo lspci -nn -k -vv
>>>>      00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>>>>              Latency: 64
>>>>              Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
>>>>              Capabilities: [a0] AGP version 3.0
>>>>                      Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
>>>>                      Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
>>>>              Capabilities: [d0] HyperTransport: Slave or Primary Interface
>>>>                      Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
>>>>                      Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>>>>                      Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
>>>>                      Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>>>>                      Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
>>>>                      Revision ID: 1.05
>>>>                      Link Frequency 0: 800MHz
>>>>                      Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
>>>>                      Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
>>>>                      Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
>>>>                      Link Frequency 1: 200MHz
>>>>                      Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
>>>>                      Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
>>>>                      Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
>>>>                      Prefetchable memory behind bridge Upper: 00-00
>>>>                      Bus Number: 00
>>>>              Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
>>>>              Capabilities: [5c] HyperTransport: Revision ID: 1.05
>>>>              Kernel driver in use: agpgart-amd64
>>>>      
>>>>      00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 0, Cache Line Size: 64 bytes
>>>>              Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
>>>>              I/O behind bridge: 00002000-00002fff
>>>>              Memory behind bridge: f2100000-f21fffff
>>>>              Prefetchable memory behind bridge: e0000000-efffffff
>>>>              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
>>>>              BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
>>>>                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>>>>              Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
>>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0
>>>>                              ExtTag+ RBE-
>>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
>>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
>>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
>>>>                              ClockPM- Surprise- LLActRep+ BwNot-
>>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
>>>>                      SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
>>>>                              Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
>>>>                      SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
>>>>                              Control: AttnInd Off, PwrInd Off, Power- Interlock-
>>>>                      SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
>>>>                              Changed: MRL- PresDet- LinkState-
>>>>                      RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
>>>>                      RootCap: CRSVisible-
>>>>                      RootSta: PME ReqID 0000, PMEStatus- PMEPending-
>>>>              Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
>>>>              Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
>>>>                      Address: 00000000  Data: 0000
>>>>              Capabilities: [f4] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Kernel driver in use: pcieport
>>>>      
>>>>      00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>>>>              Latency: 0
>>>>      
>>>>      00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 128
>>>>              Interrupt: pin ? routed to IRQ 16
>>>>              Region 0: I/O ports at 01f0 [size=8]
>>>>              Region 1: I/O ports at 03f4
>>>>              Region 2: I/O ports at 0170 [size=8]
>>>>              Region 3: I/O ports at 0374
>>>>              Region 4: I/O ports at 1c80 [size=16]
>>>>              Capabilities: [58] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Kernel driver in use: pata_sis
>>>>      
>>>>      00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
>>>>              Subsystem: Fujitsu Technology Solutions Device [1734:109c]
>>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 173 (13000ns min, 2750ns max)
>>>>              Interrupt: pin C routed to IRQ 18
>>>>              Region 0: I/O ports at 1400 [size=256]
>>>>              Region 1: I/O ports at 1000 [size=128]
>>>>              Capabilities: [48] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Kernel driver in use: snd_intel8x0
>>>>      
>>>>      00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 64 (20000ns max)
>>>>              Interrupt: pin A routed to IRQ 20
>>>>              Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
>>>>              Kernel driver in use: ohci-pci
>>>>      
>>>>      00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 64 (20000ns max)
>>>>              Interrupt: pin B routed to IRQ 21
>>>>              Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
>>>>              Kernel driver in use: ohci-pci
>>>>      
>>>>      00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 64 (20000ns max)
>>>>              Interrupt: pin C routed to IRQ 22
>>>>              Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
>>>>              Kernel driver in use: ohci-pci
>>>>      
>>>>      00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
>>>>              Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 64 (20000ns max)
>>>>              Interrupt: pin D routed to IRQ 23
>>>>              Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
>>>>              Capabilities: [50] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Kernel driver in use: ehci-pci
>>>>      
>>>>      00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
>>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 64
>>>>              Interrupt: pin A routed to IRQ 17
>>>>              Region 0: I/O ports at 1cb0 [size=8]
>>>>              Region 1: I/O ports at 1ca4 [size=4]
>>>>              Region 2: I/O ports at 1ca8 [size=8]
>>>>              Region 3: I/O ports at 1ca0 [size=4]
>>>>              Region 4: I/O ports at 1c90 [size=16]
>>>>              Region 5: I/O ports at 1c00 [size=128]
>>>>              Capabilities: [58] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Kernel driver in use: sata_sis
>>>>      
>>>>      00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 0, Cache Line Size: 64 bytes
>>>>              Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
>>>>              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
>>>>              BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
>>>>                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>>>>              Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
>>>>              Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
>>>>                      Address: fee0100c  Data: 4181
>>>>              Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
>>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0
>>>>                              ExtTag+ RBE-
>>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
>>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
>>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
>>>>                              ClockPM- Surprise- LLActRep- BwNot-
>>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
>>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>>>>                      LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>>>>                      SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
>>>>                              Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
>>>>                      SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
>>>>                              Control: AttnInd Off, PwrInd Off, Power- Interlock-
>>>>                      SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
>>>>                              Changed: MRL- PresDet- LinkState-
>>>>                      RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
>>>>                      RootCap: CRSVisible-
>>>>                      RootSta: PME ReqID 0000, PMEStatus- PMEPending-
>>>>              Capabilities: [f4] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Capabilities: [100 v1] Virtual Channel
>>>>                      Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
>>>>                      Arb:    Fixed- WRR32- WRR64- WRR128-
>>>>                      Ctrl:   ArbSelect=Fixed
>>>>                      Status: InProgress-
>>>>                      VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
>>>>                              Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
>>>>                              Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
>>>>                              Status: NegoPending- InProgress-
>>>>              Capabilities: [130 v1] Advanced Error Reporting
>>>>                      UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>>>>                      UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>>>>                      UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
>>>>                      CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>>>>                      CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>>>>                      AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
>>>>              Kernel driver in use: pcieport
>>>>      
>>>>      00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
>>>>              Interrupt: pin A routed to IRQ 19
>>>>              Region 0: I/O ports at 1800 [size=256]
>>>>              Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
>>>>              Capabilities: [dc] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Kernel driver in use: r8169
>>>>      
>>>>      00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
>>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Capabilities: [80] HyperTransport: Host or Secondary Interface
>>>>                      Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
>>>>                      Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>>>>                      Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
>>>>                      Revision ID: 1.02
>>>>                      Link Frequency: 800MHz
>>>>                      Link Error: <Prot- <Ovfl- <EOC- CTLTm-
>>>>                      Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
>>>>                      Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
>>>>      
>>>>      00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
>>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>      
>>>>      00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
>>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Kernel driver in use: amd64_edac
>>>>      
>>>>      00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
>>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Kernel driver in use: k8temp
>>>>      
>>>>      01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
>>>>              Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>>>>              Latency: 0, Cache Line Size: 64 bytes
>>>>              Interrupt: pin A routed to IRQ 42
>>>>              Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
>>>>              Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
>>>>              Region 4: I/O ports at 2000 [size=256]
>>>>              [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
>>>>              Capabilities: [50] Power Management version 3
>>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
>>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
>>>>                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
>>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
>>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
>>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
>>>>                              ClockPM- Surprise- LLActRep- BwNot-
>>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>>>>                      DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
>>>>                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
>>>>                      LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
>>>>                               Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
>>>>                               Compliance De-emphasis: -6dB
>>>>                      LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
>>>>                               EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
>>>>              Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
>>>>                      Address: 00000000fee0100c  Data: 41e1
>>>>              Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
>>>>              Kernel driver in use: radeon
>>>>      
>>>>      01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
>>>>              Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 0, Cache Line Size: 64 bytes
>>>>              Interrupt: pin B routed to IRQ 41
>>>>              Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
>>>>              Capabilities: [50] Power Management version 3
>>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
>>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
>>>>                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
>>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
>>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
>>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
>>>>                              ClockPM- Surprise- LLActRep- BwNot-
>>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>>>>                      DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
>>>>                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
>>>>                      LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
>>>>                               EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
>>>>              Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
>>>>                      Address: 00000000fee0100c  Data: 41d1
>>>>              Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
>>>>              Kernel driver in use: snd_hda_intel
>>>>
>>>>
>>>> Grüße,
>>>>   Thomas
>> Thomas can you provide output of lspci -t
>>
>> Also did you had a chance to test my ugly patch ?
>>
>> Cheers,
>> Jérôme
> If my ugly patch works does this quirk also work ?
>


^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-28  7:30             ` Christian König
  0 siblings, 0 replies; 82+ messages in thread
From: Christian König @ 2014-04-28  7:30 UTC (permalink / raw)
  To: Jerome Glisse, Thomas Schwinge
  Cc: Bjorn Helgaas, linux-pci, Johannes Weiner, Mel Gorman,
	Rik van Riel, Andrea Arcangeli, Zlatko Calusic, Minchan Kim,
	linux-mm, linux-kernel, Andrew Morton, Alex Deucher, dri-devel

> +	/* We are living in a monstruous world in which you can have the pci
> +	 * root complex behind an hypertransport link which can not address
> +	 * anything above 32bit (well hypertransport specification says 40bits
> +	 * but hardware such as SIS761 only support 32bits).
That looks more like a problem with this specific chipset rather than 
something that needs a general solution like this.

Maybe we should rather add the PCI-ID(s) of the thing to some kind of 
quirks table for now so that the patch isn't so invasive and we can CC 
stable as well?

Just a thought,
Christian.

Am 27.04.2014 21:55, schrieb Jerome Glisse:
> On Sat, Apr 26, 2014 at 11:31:11PM -0400, Jerome Glisse wrote:
>> On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
>>> Hi Thomas,
>>>
>>> On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
>>>> Hi!
>>>>
>>>> On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
>>>>> Each zone that holds userspace pages of one workload must be aged at a
>>>>> speed proportional to the zone size.  [...]
>>>>> Fix this with a very simple round robin allocator.  [...]
>>>> This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
>>>> commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
>>>>
>>>> I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
>>>> and it started to exhibit "strange" issues, which I then bisected to this
>>>> patch.  I'm not saying that the patch is faulty, as it seems to be
>>>> working fine for everyone else, so I rather assume that something in a
>>>> (vastly?) different corner of the kernel (or my hardware?) is broken.
>>>> ;-)
>>>>
>>>> The issue is that when X.org/lightdm starts up, there are "garbled"
>>>> section on the screen, for example, rectangular boxes that are just black
>>>> or otherwise "distorted", and/or sets of glyphs (corresponding to a set
>>>> of characters; but not all characters) are displayed as rectangular gray
>>>> or black boxes, and/or icons in a GNOME session are not displayed
>>>> properly, and so on.  (Can take a snapshot if that helps?)  Switching to
>>>> a Linux console, I can use that one fine.  Switching back to X, in the
>>>> majority of all cases, the screen will be completely black, but with the
>>>> mouse cursor still rendered properly (done in hardware, I assume).
>>>>
>>>> Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
>>>> top of v3.12, and everything is back to normal.  The problem also
>>>> persists with a v3.14 kernel that I just built.
>>>>
>>>> I will try to figure out what's going on, but will gladly take any
>>>> pointers, or suggestions about how to tackle such a problem.
>>>>
>>>> The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
>>>> AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
>>>> using that; instead I put in a Sapphire Radeon HD 4350 card.
>>> I went over this code change repeatedly but I could not see anything
>>> directly that would explain it.  However, this patch DOES change the
>>> way allocations are placed (while still respecting zone specifiers
>>> like __GFP_DMA etc.) and so it's possible that they unearthed a
>>> corruption, or a wrongly set dma mask in the drivers.
>>>
>>> Ccing the radeon driver guys.  Full quote follows.
>>>
>>>>      $ cat < /proc/cpuinfo
>>>>      processor       : 0
>>>>      vendor_id       : AuthenticAMD
>>>>      cpu family      : 15
>>>>      model           : 47
>>>>      model name      : AMD Sempron(tm) Processor 3000+
>>>>      stepping        : 2
>>>>      cpu MHz         : 1000.000
>>>>      cache size      : 128 KB
>>>>      physical id     : 0
>>>>      siblings        : 1
>>>>      core id         : 0
>>>>      cpu cores       : 1
>>>>      apicid          : 0
>>>>      initial apicid  : 0
>>>>      fpu             : yes
>>>>      fpu_exception   : yes
>>>>      cpuid level     : 1
>>>>      wp              : yes
>>>>      flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
>>>>      bogomips        : 2000.20
>>>>      TLB size        : 1024 4K pages
>>>>      clflush size    : 64
>>>>      cache_alignment : 64
>>>>      address sizes   : 40 bits physical, 48 bits virtual
>>>>      power management: ts fid vid ttp tm stc
>>>>      $ sudo lspci -nn -k -vv
>>>>      00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>>>>              Latency: 64
>>>>              Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
>>>>              Capabilities: [a0] AGP version 3.0
>>>>                      Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
>>>>                      Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
>>>>              Capabilities: [d0] HyperTransport: Slave or Primary Interface
>>>>                      Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
>>>>                      Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>>>>                      Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
>>>>                      Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>>>>                      Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
>>>>                      Revision ID: 1.05
>>>>                      Link Frequency 0: 800MHz
>>>>                      Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
>>>>                      Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
>>>>                      Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
>>>>                      Link Frequency 1: 200MHz
>>>>                      Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
>>>>                      Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
>>>>                      Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
>>>>                      Prefetchable memory behind bridge Upper: 00-00
>>>>                      Bus Number: 00
>>>>              Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
>>>>              Capabilities: [5c] HyperTransport: Revision ID: 1.05
>>>>              Kernel driver in use: agpgart-amd64
>>>>      
>>>>      00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 0, Cache Line Size: 64 bytes
>>>>              Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
>>>>              I/O behind bridge: 00002000-00002fff
>>>>              Memory behind bridge: f2100000-f21fffff
>>>>              Prefetchable memory behind bridge: e0000000-efffffff
>>>>              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
>>>>              BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
>>>>                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>>>>              Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
>>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0
>>>>                              ExtTag+ RBE-
>>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
>>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
>>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
>>>>                              ClockPM- Surprise- LLActRep+ BwNot-
>>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
>>>>                      SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
>>>>                              Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
>>>>                      SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
>>>>                              Control: AttnInd Off, PwrInd Off, Power- Interlock-
>>>>                      SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
>>>>                              Changed: MRL- PresDet- LinkState-
>>>>                      RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
>>>>                      RootCap: CRSVisible-
>>>>                      RootSta: PME ReqID 0000, PMEStatus- PMEPending-
>>>>              Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
>>>>              Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
>>>>                      Address: 00000000  Data: 0000
>>>>              Capabilities: [f4] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Kernel driver in use: pcieport
>>>>      
>>>>      00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>>>>              Latency: 0
>>>>      
>>>>      00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 128
>>>>              Interrupt: pin ? routed to IRQ 16
>>>>              Region 0: I/O ports at 01f0 [size=8]
>>>>              Region 1: I/O ports at 03f4
>>>>              Region 2: I/O ports at 0170 [size=8]
>>>>              Region 3: I/O ports at 0374
>>>>              Region 4: I/O ports at 1c80 [size=16]
>>>>              Capabilities: [58] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Kernel driver in use: pata_sis
>>>>      
>>>>      00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
>>>>              Subsystem: Fujitsu Technology Solutions Device [1734:109c]
>>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 173 (13000ns min, 2750ns max)
>>>>              Interrupt: pin C routed to IRQ 18
>>>>              Region 0: I/O ports at 1400 [size=256]
>>>>              Region 1: I/O ports at 1000 [size=128]
>>>>              Capabilities: [48] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Kernel driver in use: snd_intel8x0
>>>>      
>>>>      00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 64 (20000ns max)
>>>>              Interrupt: pin A routed to IRQ 20
>>>>              Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
>>>>              Kernel driver in use: ohci-pci
>>>>      
>>>>      00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 64 (20000ns max)
>>>>              Interrupt: pin B routed to IRQ 21
>>>>              Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
>>>>              Kernel driver in use: ohci-pci
>>>>      
>>>>      00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 64 (20000ns max)
>>>>              Interrupt: pin C routed to IRQ 22
>>>>              Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
>>>>              Kernel driver in use: ohci-pci
>>>>      
>>>>      00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
>>>>              Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 64 (20000ns max)
>>>>              Interrupt: pin D routed to IRQ 23
>>>>              Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
>>>>              Capabilities: [50] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Kernel driver in use: ehci-pci
>>>>      
>>>>      00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
>>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 64
>>>>              Interrupt: pin A routed to IRQ 17
>>>>              Region 0: I/O ports at 1cb0 [size=8]
>>>>              Region 1: I/O ports at 1ca4 [size=4]
>>>>              Region 2: I/O ports at 1ca8 [size=8]
>>>>              Region 3: I/O ports at 1ca0 [size=4]
>>>>              Region 4: I/O ports at 1c90 [size=16]
>>>>              Region 5: I/O ports at 1c00 [size=128]
>>>>              Capabilities: [58] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Kernel driver in use: sata_sis
>>>>      
>>>>      00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 0, Cache Line Size: 64 bytes
>>>>              Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
>>>>              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
>>>>              BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
>>>>                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>>>>              Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
>>>>              Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
>>>>                      Address: fee0100c  Data: 4181
>>>>              Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
>>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0
>>>>                              ExtTag+ RBE-
>>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
>>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
>>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
>>>>                              ClockPM- Surprise- LLActRep- BwNot-
>>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
>>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>>>>                      LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>>>>                      SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
>>>>                              Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
>>>>                      SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
>>>>                              Control: AttnInd Off, PwrInd Off, Power- Interlock-
>>>>                      SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
>>>>                              Changed: MRL- PresDet- LinkState-
>>>>                      RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
>>>>                      RootCap: CRSVisible-
>>>>                      RootSta: PME ReqID 0000, PMEStatus- PMEPending-
>>>>              Capabilities: [f4] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Capabilities: [100 v1] Virtual Channel
>>>>                      Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
>>>>                      Arb:    Fixed- WRR32- WRR64- WRR128-
>>>>                      Ctrl:   ArbSelect=Fixed
>>>>                      Status: InProgress-
>>>>                      VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
>>>>                              Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
>>>>                              Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
>>>>                              Status: NegoPending- InProgress-
>>>>              Capabilities: [130 v1] Advanced Error Reporting
>>>>                      UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>>>>                      UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>>>>                      UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
>>>>                      CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>>>>                      CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>>>>                      AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
>>>>              Kernel driver in use: pcieport
>>>>      
>>>>      00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
>>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
>>>>              Interrupt: pin A routed to IRQ 19
>>>>              Region 0: I/O ports at 1800 [size=256]
>>>>              Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
>>>>              Capabilities: [dc] Power Management version 2
>>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Kernel driver in use: r8169
>>>>      
>>>>      00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
>>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Capabilities: [80] HyperTransport: Host or Secondary Interface
>>>>                      Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
>>>>                      Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
>>>>                      Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
>>>>                      Revision ID: 1.02
>>>>                      Link Frequency: 800MHz
>>>>                      Link Error: <Prot- <Ovfl- <EOC- CTLTm-
>>>>                      Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
>>>>                      Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
>>>>      
>>>>      00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
>>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>      
>>>>      00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
>>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Kernel driver in use: amd64_edac
>>>>      
>>>>      00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
>>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Kernel driver in use: k8temp
>>>>      
>>>>      01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
>>>>              Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
>>>>              Latency: 0, Cache Line Size: 64 bytes
>>>>              Interrupt: pin A routed to IRQ 42
>>>>              Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
>>>>              Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
>>>>              Region 4: I/O ports at 2000 [size=256]
>>>>              [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
>>>>              Capabilities: [50] Power Management version 3
>>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
>>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
>>>>                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
>>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
>>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
>>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
>>>>                              ClockPM- Surprise- LLActRep- BwNot-
>>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>>>>                      DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
>>>>                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
>>>>                      LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
>>>>                               Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
>>>>                               Compliance De-emphasis: -6dB
>>>>                      LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
>>>>                               EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
>>>>              Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
>>>>                      Address: 00000000fee0100c  Data: 41e1
>>>>              Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
>>>>              Kernel driver in use: radeon
>>>>      
>>>>      01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
>>>>              Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
>>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
>>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>              Latency: 0, Cache Line Size: 64 bytes
>>>>              Interrupt: pin B routed to IRQ 41
>>>>              Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
>>>>              Capabilities: [50] Power Management version 3
>>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
>>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>              Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
>>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
>>>>                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
>>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
>>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
>>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
>>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
>>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
>>>>                              ClockPM- Surprise- LLActRep- BwNot-
>>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
>>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>>>>                      DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
>>>>                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
>>>>                      LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
>>>>                               EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
>>>>              Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
>>>>                      Address: 00000000fee0100c  Data: 41d1
>>>>              Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
>>>>              Kernel driver in use: snd_hda_intel
>>>>
>>>>
>>>> Grüße,
>>>>   Thomas
>> Thomas can you provide output of lspci -t
>>
>> Also did you had a chance to test my ugly patch ?
>>
>> Cheers,
>> Jérôme
> If my ugly patch works does this quirk also work ?
>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2014-04-25 23:03             ` Jerome Glisse
  (?)
  (?)
@ 2014-04-28  8:03             ` Thomas Schwinge
  2014-04-28  9:09               ` Thomas Schwinge
  -1 siblings, 1 reply; 82+ messages in thread
From: Thomas Schwinge @ 2014-04-28  8:03 UTC (permalink / raw)
  To: Jerome Glisse, Johannes Weiner
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel, Andrew Morton, Alex Deucher,
	Christian König, dri-devel


[-- Attachment #1.1: Type: text/plain, Size: 35703 bytes --]

Hi!

On Fri, 25 Apr 2014 19:03:22 -0400, Jerome Glisse <j.glisse@gmail.com> wrote:
> On Fri, Apr 25, 2014 at 05:50:57PM -0400, Jerome Glisse wrote:
> > On Fri, Apr 25, 2014 at 05:47:48PM -0400, Jerome Glisse wrote:
> > > On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:

Guys, thanks for following up on that one!  We're currently renovating
our (new) home, and relocating, so not much time to look into this issue,
but I'll try my best, and here are some results:

> > > > On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > > > > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > > > > Each zone that holds userspace pages of one workload must be aged at a
> > > > > > speed proportional to the zone size.  [...]
> > > > > 
> > > > > > Fix this with a very simple round robin allocator.  [...]
> > > > > 
> > > > > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > > > > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > > > > 
> > > > > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > > > > and it started to exhibit "strange" issues, which I then bisected to this
> > > > > patch.  I'm not saying that the patch is faulty, as it seems to be
> > > > > working fine for everyone else, so I rather assume that something in a
> > > > > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > > > > ;-)
> > > > > 
> > > > > The issue is that when X.org/lightdm starts up, there are "garbled"
> > > > > section on the screen, for example, rectangular boxes that are just black
> > > > > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > > > > of characters; but not all characters) are displayed as rectangular gray
> > > > > or black boxes, and/or icons in a GNOME session are not displayed
> > > > > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > > > > a Linux console, I can use that one fine.  Switching back to X, in the
> > > > > majority of all cases, the screen will be completely black, but with the
> > > > > mouse cursor still rendered properly (done in hardware, I assume).
> > > > > 
> > > > > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > > > > top of v3.12, and everything is back to normal.  The problem also
> > > > > persists with a v3.14 kernel that I just built.
> > > > > 
> > > > > I will try to figure out what's going on, but will gladly take any
> > > > > pointers, or suggestions about how to tackle such a problem.
> > > > > 
> > > > > The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1, CPU
> > > > > AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> > > > > using that; instead I put in a Sapphire Radeon HD 4350 card.
> > > > 
> > > > I went over this code change repeatedly but I could not see anything
> > > > directly that would explain it.  However, this patch DOES change the
> > > > way allocations are placed (while still respecting zone specifiers
> > > > like __GFP_DMA etc.) and so it's possible that they unearthed a
> > > > corruption, or a wrongly set dma mask in the drivers.

OK, that was my impression too from reading the patch -- though, in
contrast to you, I'm not familiar with this Linux kernel code, so might
easily miss some "details".  ;-)

> > > Can we get a full dmesg, to know if thing like IOMMU are enabled or not.

Attached dmesg-v3.12 and dmesg-v3.14.

> > > This is even more puzzling as rv710 has 40bit dma mask iirc and thus you
> > > should be fine even without IOMMU. But given the patch you point to, it
> > > really can only be something that allocate page in place the GPU fails
> > > to access.
> > > 
> > > Thomas how much memory do you have (again dmes will also provide mapping
> > > informations) ?

4 GiB; see dmesg.

> > > My guess is that the pcie bridge can only remap dma page with 32bit dma
> > > mask while the gpu is fine with 40bit dma mask. I always thought that the
> > > pcie/pci code did take care of such thing for us.
> > 
> > Forgot to attach patch to test my theory. Does the attached patch fix
> > the issue ?

Unfortunately it does not.  :-/

> So this is likely it, the SIS chipset of this motherboard is a freak show.

Well, it has been a freak show before: system crash if I put into the CD
drive a specific audio CD:
<http://news.gmane.org/find-root.php?message_id=%3C87obojef7t.fsf%40schwinge.name%3E>.
(This issue remains unresolved, unless it has "fixed itself" -- I have
not recently tried what happens now.)

> It support both PCIE and AGP at same time
> 
> http://www.newegg.com/Product/Product.aspx?Item=N82E16813185068
> 
> Why in hell ?
> 
> So my guess is that the root pcie bridge is behind the AGP bridge which
> swallow any address > 32bit and thus the dma mask of the pcie radeon
> card is just believing that we are living in a sane world.

    $ lspci -vt
    -[0000:00]-+-00.0  Silicon Integrated Systems [SiS] 761/M761 Host
               +-01.0-[01]--+-00.0  Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v]
               |            \-00.1  Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series]
               +-02.0  Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO]
               +-02.5  Silicon Integrated Systems [SiS] 5513 IDE Controller
               +-02.7  Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller
               +-03.0  Silicon Integrated Systems [SiS] USB 1.1 Controller
               +-03.1  Silicon Integrated Systems [SiS] USB 1.1 Controller
               +-03.2  Silicon Integrated Systems [SiS] USB 1.1 Controller
               +-03.3  Silicon Integrated Systems [SiS] USB 2.0 Controller
               +-05.0  Silicon Integrated Systems [SiS] 182 SATA/RAID Controller
               +-06.0-[02]--
               +-09.0  Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller
               +-18.0  Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
               +-18.1  Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map
               +-18.2  Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller
               \-18.3  Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

Full quote follows:

> > > > >     $ cat < /proc/cpuinfo
> > > > >     processor       : 0
> > > > >     vendor_id       : AuthenticAMD
> > > > >     cpu family      : 15
> > > > >     model           : 47
> > > > >     model name      : AMD Sempron(tm) Processor 3000+
> > > > >     stepping        : 2
> > > > >     cpu MHz         : 1000.000
> > > > >     cache size      : 128 KB
> > > > >     physical id     : 0
> > > > >     siblings        : 1
> > > > >     core id         : 0
> > > > >     cpu cores       : 1
> > > > >     apicid          : 0
> > > > >     initial apicid  : 0
> > > > >     fpu             : yes
> > > > >     fpu_exception   : yes
> > > > >     cpuid level     : 1
> > > > >     wp              : yes
> > > > >     flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm
> > > > >     bogomips        : 2000.20
> > > > >     TLB size        : 1024 4K pages
> > > > >     clflush size    : 64
> > > > >     cache_alignment : 64
> > > > >     address sizes   : 40 bits physical, 48 bits virtual
> > > > >     power management: ts fid vid ttp tm stc
> > > > >     $ sudo lspci -nn -k -vv
> > > > >     00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761 Host [1039:0761] (rev 01)
> > > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1099]
> > > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > > > >             Latency: 64
> > > > >             Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=32M]
> > > > >             Capabilities: [a0] AGP version 3.0
> > > > >                     Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> > > > >                     Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> > > > >             Capabilities: [d0] HyperTransport: Slave or Primary Interface
> > > > >                     Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> > > > >                     Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > > > >                     Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > > > >                     Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > > > >                     Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut- LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> > > > >                     Revision ID: 1.05
> > > > >                     Link Frequency 0: 800MHz
> > > > >                     Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> > > > >                     Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> > > > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+ UIDRD-
> > > > >                     Link Frequency 1: 200MHz
> > > > >                     Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> > > > >                     Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > > > >                     Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> > > > >                     Prefetchable memory behind bridge Upper: 00-00
> > > > >                     Bus Number: 00
> > > > >             Capabilities: [f0] HyperTransport: Interrupt Discovery and Configuration
> > > > >             Capabilities: [5c] HyperTransport: Revision ID: 1.05
> > > > >             Kernel driver in use: agpgart-amd64
> > > > >     
> > > > >     00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:0004] (prog-if 00 [Normal decode])
> > > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Latency: 0, Cache Line Size: 64 bytes
> > > > >             Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> > > > >             I/O behind bridge: 00002000-00002fff
> > > > >             Memory behind bridge: f2100000-f21fffff
> > > > >             Prefetchable memory behind bridge: e0000000-efffffff
> > > > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> > > > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset- FastB2B-
> > > > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > > > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > > > >                             ExtTag+ RBE-
> > > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> > > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > > > >                             ClockPM- Surprise- LLActRep+ BwNot-
> > > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
> > > > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > > > >                             Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> > > > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > > > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > > > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > > > >                             Changed: MRL- PresDet- LinkState-
> > > > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > > > >                     RootCap: CRSVisible-
> > > > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > > > >             Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> > > > >             Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> > > > >                     Address: 00000000  Data: 0000
> > > > >             Capabilities: [f4] Power Management version 2
> > > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > > >             Kernel driver in use: pcieport
> > > > >     
> > > > >     00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965 [MuTIOL Media IO] [1039:0965] (rev 48)
> > > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > > > >             Latency: 0
> > > > >     
> > > > >     00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> > > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Latency: 128
> > > > >             Interrupt: pin ? routed to IRQ 16
> > > > >             Region 0: I/O ports at 01f0 [size=8]
> > > > >             Region 1: I/O ports at 03f4
> > > > >             Region 2: I/O ports at 0170 [size=8]
> > > > >             Region 3: I/O ports at 0374
> > > > >             Region 4: I/O ports at 1c80 [size=16]
> > > > >             Capabilities: [58] Power Management version 2
> > > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > > >             Kernel driver in use: pata_sis
> > > > >     
> > > > >     00:02.7 Multimedia audio controller [0401]: Silicon Integrated Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> > > > >             Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> > > > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Latency: 173 (13000ns min, 2750ns max)
> > > > >             Interrupt: pin C routed to IRQ 18
> > > > >             Region 0: I/O ports at 1400 [size=256]
> > > > >             Region 1: I/O ports at 1000 [size=128]
> > > > >             Capabilities: [48] Power Management version 2
> > > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> > > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > > >             Kernel driver in use: snd_intel8x0
> > > > >     
> > > > >     00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Latency: 64 (20000ns max)
> > > > >             Interrupt: pin A routed to IRQ 20
> > > > >             Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
> > > > >             Kernel driver in use: ohci-pci
> > > > >     
> > > > >     00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Latency: 64 (20000ns max)
> > > > >             Interrupt: pin B routed to IRQ 21
> > > > >             Region 0: Memory at f2001000 (32-bit, non-prefetchable) [size=4K]
> > > > >             Kernel driver in use: ohci-pci
> > > > >     
> > > > >     00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1 Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard [1734:1095]
> > > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > > >             Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Latency: 64 (20000ns max)
> > > > >             Interrupt: pin C routed to IRQ 22
> > > > >             Region 0: Memory at f2002000 (32-bit, non-prefetchable) [size=4K]
> > > > >             Kernel driver in use: ohci-pci
> > > > >     
> > > > >     00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0 Controller [1039:7002] (prog-if 20 [EHCI])
> > > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > > > >             Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > > >             Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Latency: 64 (20000ns max)
> > > > >             Interrupt: pin D routed to IRQ 23
> > > > >             Region 0: Memory at f2003000 (32-bit, non-prefetchable) [size=4K]
> > > > >             Capabilities: [50] Power Management version 2
> > > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > > >             Kernel driver in use: ehci-pci
> > > > >     
> > > > >     00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182 SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP PriO])
> > > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > > > >             Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Latency: 64
> > > > >             Interrupt: pin A routed to IRQ 17
> > > > >             Region 0: I/O ports at 1cb0 [size=8]
> > > > >             Region 1: I/O ports at 1ca4 [size=4]
> > > > >             Region 2: I/O ports at 1ca8 [size=8]
> > > > >             Region 3: I/O ports at 1ca0 [size=4]
> > > > >             Region 4: I/O ports at 1c90 [size=16]
> > > > >             Region 5: I/O ports at 1c00 [size=128]
> > > > >             Capabilities: [58] Power Management version 2
> > > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
> > > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > > >             Kernel driver in use: sata_sis
> > > > >     
> > > > >     00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI bridge [1039:000a] (prog-if 00 [Normal decode])
> > > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Latency: 0, Cache Line Size: 64 bytes
> > > > >             Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> > > > >             Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
> > > > >             BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> > > > >                     PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > > > >             Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS] Device [1039:0000]
> > > > >             Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > > > >                     Address: fee0100c  Data: 4181
> > > > >             Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0
> > > > >                             ExtTag+ RBE-
> > > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> > > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <2us
> > > > >                             ClockPM- Surprise- LLActRep- BwNot-
> > > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> > > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > > >                     LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > > > >                     SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
> > > > >                             Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> > > > >                     SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
> > > > >                             Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > > > >                     SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
> > > > >                             Changed: MRL- PresDet- LinkState-
> > > > >                     RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
> > > > >                     RootCap: CRSVisible-
> > > > >                     RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > > > >             Capabilities: [f4] Power Management version 2
> > > > >                     Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > > >             Capabilities: [100 v1] Virtual Channel
> > > > >                     Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> > > > >                     Arb:    Fixed- WRR32- WRR64- WRR128-
> > > > >                     Ctrl:   ArbSelect=Fixed
> > > > >                     Status: InProgress-
> > > > >                     VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> > > > >                             Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> > > > >                             Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> > > > >                             Status: NegoPending- InProgress-
> > > > >             Capabilities: [130 v1] Advanced Error Reporting
> > > > >                     UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > > > >                     UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > > > >                     UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> > > > >                     CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > > > >                     CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > > > >                     AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> > > > >             Kernel driver in use: pcieport
> > > > >     
> > > > >     00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> > > > >             Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> > > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > > > >             Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> > > > >             Interrupt: pin A routed to IRQ 19
> > > > >             Region 0: I/O ports at 1800 [size=256]
> > > > >             Region 1: Memory at f2004000 (32-bit, non-prefetchable) [size=256]
> > > > >             Capabilities: [dc] Power Management version 2
> > > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> > > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > > >             Kernel driver in use: r8169
> > > > >     
> > > > >     00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> > > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Capabilities: [80] HyperTransport: Host or Secondary Interface
> > > > >                     Command: WarmRst+ DblEnd- DevNum=0 ChainSide- HostHide+ Slave- <EOCErr- DUL-
> > > > >                     Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > > > >                     Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > > > >                     Revision ID: 1.02
> > > > >                     Link Frequency: 800MHz
> > > > >                     Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> > > > >                     Link Frequency Capability: 200MHz+ 300MHz- 400MHz+ 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > > > >                     Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD- ExtRS- UCnfE-
> > > > >     
> > > > >     00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
> > > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >     
> > > > >     00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
> > > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Kernel driver in use: amd64_edac
> > > > >     
> > > > >     00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> > > > >             Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > > > >             Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Kernel driver in use: k8temp
> > > > >     
> > > > >     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v] [1002:9553] (prog-if 00 [VGA controller])
> > > > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:3092]
> > > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> > > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > > > >             Latency: 0, Cache Line Size: 64 bytes
> > > > >             Interrupt: pin A routed to IRQ 42
> > > > >             Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> > > > >             Region 2: Memory at f2100000 (64-bit, non-prefetchable) [size=64K]
> > > > >             Region 4: I/O ports at 2000 [size=256]
> > > > >             [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> > > > >             Capabilities: [50] Power Management version 3
> > > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > > > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > > > >                             ClockPM- Surprise- LLActRep- BwNot-
> > > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > > > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > > > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > > > >                     LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
> > > > >                              Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> > > > >                              Compliance De-emphasis: -6dB
> > > > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > > > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > > > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > > > >                     Address: 00000000fee0100c  Data: 41e1
> > > > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > > > >             Kernel driver in use: radeon
> > > > >     
> > > > >     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> > > > >             Subsystem: PC Partner Limited / Sapphire Technology Device [174b:aa38]
> > > > >             Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > > > >             Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > > > >             Latency: 0, Cache Line Size: 64 bytes
> > > > >             Interrupt: pin B routed to IRQ 41
> > > > >             Region 0: Memory at f2110000 (64-bit, non-prefetchable) [size=16K]
> > > > >             Capabilities: [50] Power Management version 3
> > > > >                     Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > > > >                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > > > >             Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > > > >                     DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> > > > >                             ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > > > >                     DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> > > > >                             RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > > > >                             MaxPayload 128 bytes, MaxReadReq 128 bytes
> > > > >                     DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
> > > > >                     LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
> > > > >                             ClockPM- Surprise- LLActRep- BwNot-
> > > > >                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > > > >                             ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > > > >                     LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> > > > >                     DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
> > > > >                     DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
> > > > >                     LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
> > > > >                              EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
> > > > >             Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > > > >                     Address: 00000000fee0100c  Data: 41d1
> > > > >             Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
> > > > >             Kernel driver in use: snd_hda_intel


Grüße,
 Thomas



[-- Attachment #1.2: dmesg-v3.12 --]
[-- Type: text/plain, Size: 45867 bytes --]

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.12.0 (thomas@hertz) (gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu9) ) #4 SMP Mon Apr 28 07:50:11 CEST 2014
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.12.0 root=/dev/mapper/vg0-boole--root ro
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009dfff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009e000-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e4000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000cfedffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000cfee0000-0x00000000cfeeefff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000cfeef000-0x00000000cfefffff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000cff00000-0x00000000cfffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec0ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fff00000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000012fffffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.34 present.
[    0.000000] DMI: FUJITSU SIEMENS D2264-A1            /D2264-A1, BIOS 5.00 R1.07-01.2264.A1            06/07/2006
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] AGP bridge at 00:00:00
[    0.000000] Aperture from AGP @ f0000000 old size 32 MB
[    0.000000] Aperture from AGP @ f0000000 size 32 MB (APSIZE f38)
[    0.000000] e820: last_pfn = 0x130000 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-D3FFF write-protect
[    0.000000]   D4000-E3FFF uncachable
[    0.000000]   E4000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 0000000000 mask FF80000000 write-back
[    0.000000]   1 base 0100000000 mask FFE0000000 write-back
[    0.000000]   2 base 0120000000 mask FFF0000000 write-back
[    0.000000]   3 base 0080000000 mask FFC0000000 write-back
[    0.000000]   4 base 00C0000000 mask FFF0000000 write-back
[    0.000000]   5 base 00CFF00000 mask FFFFF00000 uncachable
[    0.000000]   6 base 00F0000000 mask FFFE000000 write-combining
[    0.000000]   7 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] e820: last_pfn = 0xcfee0 max_arch_pfn = 0x400000000
[    0.000000] found SMP MP-table at [mem 0x000f73b0-0x000f73bf] mapped at [ffff8800000f73b0]
[    0.000000] Base memory trampoline at [ffff880000098000] 98000 size 24576
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000]  [mem 0x00000000-0x000fffff] page 4k
[    0.000000] BRK [0x01a93000, 0x01a93fff] PGTABLE
[    0.000000] BRK [0x01a94000, 0x01a94fff] PGTABLE
[    0.000000] BRK [0x01a95000, 0x01a95fff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x12fe00000-0x12fffffff]
[    0.000000]  [mem 0x12fe00000-0x12fffffff] page 2M
[    0.000000] BRK [0x01a96000, 0x01a96fff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x12c000000-0x12fdfffff]
[    0.000000]  [mem 0x12c000000-0x12fdfffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x100000000-0x12bffffff]
[    0.000000]  [mem 0x100000000-0x12bffffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x00100000-0xcfedffff]
[    0.000000]  [mem 0x00100000-0x001fffff] page 4k
[    0.000000]  [mem 0x00200000-0xcfdfffff] page 2M
[    0.000000]  [mem 0xcfe00000-0xcfedffff] page 4k
[    0.000000] RAMDISK: [mem 0x3640c000-0x371fdfff]
[    0.000000] ACPI: RSDP 00000000000f7350 00024 (v02 PTLTD )
[    0.000000] ACPI: XSDT 00000000cfeeb7e4 0004C (v01 PTLTD  ? XSDT   00050000  LTP 00000000)
[    0.000000] ACPI: FACP 00000000cfeeb8a4 000F4 (v03 FSC       \xfffffff7P?-? 00050000      000F4240)
[    0.000000] ACPI: DSDT 00000000cfeeb998 034FB (v01 FSC    D2030    00050000 MSFT 02000002)
[    0.000000] ACPI: FACS 00000000cfeeffc0 00040
[    0.000000] ACPI: SSDT 00000000cfeeee93 000B5 (v01 PTLTD  POWERNOW 00050000  LTP 00000001)
[    0.000000] ACPI: APIC 00000000cfeeef48 00050 (v01 PTLTD  ? APIC   00050000  LTP 00000000)
[    0.000000] ACPI: MCFG 00000000cfeeef98 00040 (v01 PTLTD    MCFG   00050000  LTP 00000000)
[    0.000000] ACPI: BOOT 00000000cfeeefd8 00028 (v01 PTLTD  $SBFTBL$ 00050000  LTP 00000001)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] Scanning NUMA topology in Northbridge 24
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000012fffffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x12fffffff]
[    0.000000]   NODE_DATA [mem 0x12fff8000-0x12fffbfff]
[    0.000000]  [ffffea0000000000-ffffea00043fffff] PMD -> [ffff88012b600000-ffff88012effffff] on node 0
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x00001000-0x00ffffff]
[    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
[    0.000000]   Normal   [mem 0x100000000-0x12fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00001000-0x0009dfff]
[    0.000000]   node   0: [mem 0x00100000-0xcfedffff]
[    0.000000]   node   0: [mem 0x100000000-0x12fffffff]
[    0.000000] On node 0 totalpages: 1048189
[    0.000000]   DMA zone: 56 pages used for memmap
[    0.000000]   DMA zone: 21 pages reserved
[    0.000000]   DMA zone: 3997 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 11589 pages used for memmap
[    0.000000]   DMA32 zone: 847584 pages, LIFO batch:31
[    0.000000]   Normal zone: 2688 pages used for memmap
[    0.000000]   Normal zone: 196608 pages, LIFO batch:31
[    0.000000] ACPI: PM-Timer IO Port: 0xf008
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 1, version 20, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] smpboot: Allowing 1 CPUs, 0 hotplug CPUs
[    0.000000] nr_irqs_gsi: 40
[    0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000e3fff]
[    0.000000] PM: Registered nosave memory: [mem 0x000e4000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0xcfee0000-0xcfeeefff]
[    0.000000] PM: Registered nosave memory: [mem 0xcfeef000-0xcfefffff]
[    0.000000] PM: Registered nosave memory: [mem 0xcff00000-0xcfffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xd0000000-0xfebfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec00000-0xfec0ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec10000-0xfedfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfee00000-0xfee00fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfee01000-0xffefffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfff00000-0xffffffff]
[    0.000000] e820: [mem 0xd0000000-0xfebfffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:1 nr_node_ids:1
[    0.000000] PERCPU: Embedded 28 pages/cpu @ffff88012fc00000 s85888 r8192 d20608 u2097152
[    0.000000] pcpu-alloc: s85888 r8192 d20608 u2097152 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 1033835
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.12.0 root=/dev/mapper/vg0-boole--root ro
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Checking aperture...
[    0.000000] AGP bridge at 00:00:00
[    0.000000] Aperture from AGP @ f0000000 old size 32 MB
[    0.000000] Aperture from AGP @ f0000000 size 32 MB (APSIZE f38)
[    0.000000] Node 0: aperture @ f0000000 size 64 MB
[    0.000000] Memory: 4041704K/4192756K available (4725K kernel code, 680K rwdata, 1576K rodata, 972K init, 948K bss, 151052K reserved)
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=1.
[    0.000000] NR_IRQS:33024 nr_irqs:256 16
[    0.000000] spurious 8259A interrupt: IRQ7.
[    0.000000] Console: colour VGA+ 80x25
[    0.000000] console [tty0] enabled
[    0.000000] allocated 16777216 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 1800.195 MHz processor
[    0.008003] Calibrating delay loop (skipped), value calculated using timer frequency.. 3600.39 BogoMIPS (lpj=7200780)
[    0.008076] pid_max: default: 32768 minimum: 301
[    0.008153] Security Framework initialized
[    0.008194] AppArmor: AppArmor disabled by boot time parameter
[    0.008230] Yama: becoming mindful.
[    0.008631] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.014121] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.015473] Mount-cache hash table entries: 256
[    0.015786] Initializing cgroup subsys memory
[    0.015851] Initializing cgroup subsys devices
[    0.015888] Initializing cgroup subsys freezer
[    0.015926] Initializing cgroup subsys net_cls
[    0.015962] Initializing cgroup subsys blkio
[    0.016009] Initializing cgroup subsys perf_event
[    0.016074] tseg: 00cff00000
[    0.016078] mce: CPU supports 5 MCE banks
[    0.016126] Last level iTLB entries: 4KB 512, 2MB 8, 4MB 4
[    0.016126] Last level dTLB entries: 4KB 512, 2MB 8, 4MB 4
[    0.016126] tlb_flushall_shift: 4
[    0.022089] Freeing SMP alternatives memory: 20K (ffffffff8199f000 - ffffffff819a4000)
[    0.023084] ACPI: Core revision 20130725
[    0.024776] ACPI: All ACPI Tables successfully acquired
[    0.026673] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=0 pin2=0
[    0.066408] smpboot: CPU0: AMD Sempron(tm) Processor 3000+ (fam: 0f, model: 2f, stepping: 02)
[    0.068000] Performance Events: AMD PMU driver.
[    0.068000] ... version:                0
[    0.068000] ... bit width:              48
[    0.068000] ... generic registers:      4
[    0.068000] ... value mask:             0000ffffffffffff
[    0.068000] ... max period:             00007fffffffffff
[    0.068000] ... fixed-purpose events:   0
[    0.068000] ... event mask:             000000000000000f
[    0.068000] Brought up 1 CPUs
[    0.068000] smpboot: Total of 1 processors activated (3600.39 BogoMIPS)
[    0.068000] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[    0.068000] devtmpfs: initialized
[    0.070632] PM: Registering ACPI NVS region [mem 0xcfeef000-0xcfefffff] (69632 bytes)
[    0.070914] NET: Registered protocol family 16
[    0.071105] cpuidle: using governor ladder
[    0.071142] cpuidle: using governor menu
[    0.071184] node 0 link 0: io port [0, fffff]
[    0.071187] TOM: 00000000d0000000 aka 3328M
[    0.071225] node 0 link 0: mmio [d0000000, dfffffff]
[    0.071229] node 0 link 0: mmio [a0000, bffff]
[    0.071232] node 0 link 0: mmio [d0000000, fe0bffff]
[    0.071234] TOM2: 0000000130000000 aka 4864M
[    0.071271] bus: [bus 00-ff] on node 0 link 0
[    0.071274] bus: 00 [io  0x0000-0xffff]
[    0.071276] bus: 00 [mem 0xd0000000-0xffffffff]
[    0.071278] bus: 00 [mem 0x000a0000-0x000bffff]
[    0.071280] bus: 00 [mem 0x130000000-0xfcffffffff]
[    0.071317] ACPI: bus type PCI registered
[    0.071355] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.071468] PCI: MMCONFIG for domain 0000 [bus 00-01] at [mem 0xd0000000-0xd01fffff] (base 0xd0000000)
[    0.071509] PCI: not using MMCONFIG
[    0.071545] PCI: Using configuration type 1 for base access
[    0.072527] bio: create slab <bio-0> at 0
[    0.072683] ACPI: Added _OSI(Module Device)
[    0.072721] ACPI: Added _OSI(Processor Device)
[    0.072757] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.072793] ACPI: Added _OSI(Processor Aggregator Device)
[    0.073249] ACPI: EC: Look up EC in DSDT
[    0.075115] ACPI: Interpreter enabled
[    0.075165] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20130725/hwxface-571)
[    0.075281] ACPI: (supports S0 S1 S3 S4 S5)
[    0.075317] ACPI: Using IOAPIC for interrupt routing
[    0.075378] PCI: MMCONFIG for domain 0000 [bus 00-01] at [mem 0xd0000000-0xd01fffff] (base 0xd0000000)
[    0.075830] PCI: MMCONFIG at [mem 0xd0000000-0xd01fffff] reserved in ACPI motherboard resources
[    0.076036] PCI: Ignoring host bridge windows from ACPI; if necessary, use "pci=use_crs" and report a bug
[    0.076198] ACPI: No dock devices found.
[    0.081585] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.081633] acpi PNP0A03:00: ACPI _OSC support notification failed, disabling PCIe ASPM
[    0.081673] acpi PNP0A03:00: Unable to request _OSC control (_OSC support mask: 0x08)
[    0.081811] acpi PNP0A03:00: host bridge window [io  0x0000-0x0cf7] (ignored)
[    0.081814] acpi PNP0A03:00: host bridge window [io  0x0d00-0xffff] (ignored)
[    0.081817] acpi PNP0A03:00: host bridge window [mem 0x000a0000-0x000bffff] (ignored)
[    0.081820] acpi PNP0A03:00: host bridge window [mem 0x000c8000-0x000dffff] (ignored)
[    0.081823] acpi PNP0A03:00: host bridge window [mem 0xd0000000-0xfebfffff] (ignored)
[    0.081826] acpi PNP0A03:00: host bridge window [mem 0xfed00000-0xfedfffff] (ignored)
[    0.081829] acpi PNP0A03:00: host bridge window [mem 0xfef00000-0xff77ffff] (ignored)
[    0.081832] PCI: root bus 00: hardware-probed resources
[    0.081838] acpi PNP0A03:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-01] only partially covers this bridge
[    0.082073] PCI host bridge to bus 0000:00
[    0.082111] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.082148] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    0.082185] pci_bus 0000:00: root bus resource [mem 0xd0000000-0xffffffff]
[    0.082223] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[    0.082260] pci_bus 0000:00: root bus resource [mem 0x130000000-0xfcffffffff]
[    0.082310] pci 0000:00:00.0: [1039:0761] type 00 class 0x060000
[    0.082320] pci 0000:00:00.0: reg 0x10: [mem 0xf0000000-0xf1ffffff]
[    0.082449] pci 0000:00:01.0: [1039:0004] type 01 class 0x060400
[    0.082500] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[    0.082549] pci 0000:00:01.0: System wakeup disabled by ACPI
[    0.082628] pci 0000:00:02.0: [1039:0965] type 00 class 0x060100
[    0.082746] pci 0000:00:02.5: [1039:5513] type 00 class 0x01018a
[    0.082769] pci 0000:00:02.5: reg 0x10: [io  0x01f0-0x01f7]
[    0.082777] pci 0000:00:02.5: reg 0x14: [io  0x03f4-0x03f7]
[    0.082784] pci 0000:00:02.5: reg 0x18: [io  0x0170-0x0177]
[    0.082791] pci 0000:00:02.5: reg 0x1c: [io  0x0374-0x0377]
[    0.082799] pci 0000:00:02.5: reg 0x20: [io  0x1c80-0x1c8f]
[    0.082827] pci 0000:00:02.5: PME# supported from D3cold
[    0.082910] pci 0000:00:02.7: [1039:7012] type 00 class 0x040100
[    0.082923] pci 0000:00:02.7: reg 0x10: [io  0x1400-0x14ff]
[    0.082931] pci 0000:00:02.7: reg 0x14: [io  0x1000-0x107f]
[    0.082975] pci 0000:00:02.7: supports D1 D2
[    0.082977] pci 0000:00:02.7: PME# supported from D3hot D3cold
[    0.083021] pci 0000:00:02.7: System wakeup disabled by ACPI
[    0.083926] pci 0000:00:03.0: [1039:7001] type 00 class 0x0c0310
[    0.083937] pci 0000:00:03.0: reg 0x10: [mem 0xf2000000-0xf2000fff]
[    0.084082] pci 0000:00:03.0: System wakeup disabled by ACPI
[    0.084163] pci 0000:00:03.1: [1039:7001] type 00 class 0x0c0310
[    0.084174] pci 0000:00:03.1: reg 0x10: [mem 0xf2001000-0xf2001fff]
[    0.084287] pci 0000:00:03.1: System wakeup disabled by ACPI
[    0.084368] pci 0000:00:03.2: [1039:7001] type 00 class 0x0c0310
[    0.084378] pci 0000:00:03.2: reg 0x10: [mem 0xf2002000-0xf2002fff]
[    0.084489] pci 0000:00:03.2: System wakeup disabled by ACPI
[    0.084576] pci 0000:00:03.3: [1039:7002] type 00 class 0x0c0320
[    0.084589] pci 0000:00:03.3: reg 0x10: [mem 0xf2003000-0xf2003fff]
[    0.084634] pci 0000:00:03.3: PME# supported from D0 D3hot D3cold
[    0.084679] pci 0000:00:03.3: System wakeup disabled by ACPI
[    0.084765] pci 0000:00:05.0: [1039:0182] type 00 class 0x01018f
[    0.084777] pci 0000:00:05.0: reg 0x10: [io  0x1cb0-0x1cb7]
[    0.084784] pci 0000:00:05.0: reg 0x14: [io  0x1ca4-0x1ca7]
[    0.084792] pci 0000:00:05.0: reg 0x18: [io  0x1ca8-0x1caf]
[    0.084799] pci 0000:00:05.0: reg 0x1c: [io  0x1ca0-0x1ca3]
[    0.084806] pci 0000:00:05.0: reg 0x20: [io  0x1c90-0x1c9f]
[    0.084813] pci 0000:00:05.0: reg 0x24: [io  0x1c00-0x1c7f]
[    0.084837] pci 0000:00:05.0: PME# supported from D3cold
[    0.084925] pci 0000:00:06.0: [1039:000a] type 01 class 0x060400
[    0.084980] pci 0000:00:06.0: PME# supported from D0 D3hot D3cold
[    0.085030] pci 0000:00:06.0: System wakeup disabled by ACPI
[    0.085114] pci 0000:00:09.0: [10ec:8169] type 00 class 0x020000
[    0.085127] pci 0000:00:09.0: reg 0x10: [io  0x1800-0x18ff]
[    0.085135] pci 0000:00:09.0: reg 0x14: [mem 0xf2004000-0xf20040ff]
[    0.085179] pci 0000:00:09.0: supports D1 D2
[    0.085182] pci 0000:00:09.0: PME# supported from D1 D2 D3hot D3cold
[    0.085273] pci 0000:00:18.0: [1022:1100] type 00 class 0x060000
[    0.085356] pci 0000:00:18.1: [1022:1101] type 00 class 0x060000
[    0.085435] pci 0000:00:18.2: [1022:1102] type 00 class 0x060000
[    0.085515] pci 0000:00:18.3: [1022:1103] type 00 class 0x060000
[    0.085672] pci 0000:01:00.0: [1002:9553] type 00 class 0x030000
[    0.085686] pci 0000:01:00.0: reg 0x10: [mem 0xe0000000-0xefffffff 64bit pref]
[    0.085697] pci 0000:01:00.0: reg 0x18: [mem 0xf2100000-0xf210ffff 64bit]
[    0.085704] pci 0000:01:00.0: reg 0x20: [io  0x2000-0x20ff]
[    0.085717] pci 0000:01:00.0: reg 0x30: [mem 0x00000000-0x0001ffff pref]
[    0.085746] pci 0000:01:00.0: supports D1 D2
[    0.085797] pci 0000:01:00.1: [1002:aa38] type 00 class 0x040300
[    0.085810] pci 0000:01:00.1: reg 0x10: [mem 0xf2110000-0xf2113fff 64bit]
[    0.085862] pci 0000:01:00.1: supports D1 D2
[    0.092017] pci 0000:00:01.0: PCI bridge to [bus 01]
[    0.092061] pci 0000:00:01.0:   bridge window [io  0x2000-0x2fff]
[    0.092065] pci 0000:00:01.0:   bridge window [mem 0xf2100000-0xf21fffff]
[    0.092069] pci 0000:00:01.0:   bridge window [mem 0xe0000000-0xefffffff pref]
[    0.092129] pci 0000:00:06.0: PCI bridge to [bus 02]
[    0.092439] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
[    0.092960] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)
[    0.093477] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)
[    0.093994] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
[    0.094509] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)
[    0.095026] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
[    0.095548] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)
[    0.096075] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
[    0.096936] ACPI: \_SB_.PCI0: notify handler is installed
[    0.096967] Found 1 acpi root devices
[    0.097107] vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=io+mem,locks=none
[    0.097150] vgaarb: loaded
[    0.097186] vgaarb: bridge control possible 0000:01:00.0
[    0.097278] PCI: Using ACPI for IRQ routing
[    0.097317] PCI: pci_cache_line_size set to 64 bytes
[    0.097326] pci 0000:00:01.0: address space collision: [mem 0xf2100000-0xf21fffff] conflicts with GART [mem 0xf0000000-0xf3ffffff]
[    0.097370] pci 0000:00:00.0: address space collision: [mem 0xf0000000-0xf1ffffff] conflicts with GART [mem 0xf0000000-0xf3ffffff]
[    0.097416] pci 0000:01:00.0: no compatible bridge window for [mem 0xf2100000-0xf210ffff 64bit]
[    0.097458] pci 0000:01:00.1: no compatible bridge window for [mem 0xf2110000-0xf2113fff 64bit]
[    0.097505] pci 0000:00:03.0: address space collision: [mem 0xf2000000-0xf2000fff] conflicts with GART [mem 0xf0000000-0xf3ffffff]
[    0.097549] pci 0000:00:03.1: address space collision: [mem 0xf2001000-0xf2001fff] conflicts with GART [mem 0xf0000000-0xf3ffffff]
[    0.097592] pci 0000:00:03.2: address space collision: [mem 0xf2002000-0xf2002fff] conflicts with GART [mem 0xf0000000-0xf3ffffff]
[    0.097636] pci 0000:00:03.3: address space collision: [mem 0xf2003000-0xf2003fff] conflicts with GART [mem 0xf0000000-0xf3ffffff]
[    0.097684] pci 0000:00:09.0: address space collision: [mem 0xf2004000-0xf20040ff] conflicts with GART [mem 0xf0000000-0xf3ffffff]
[    0.097742] e820: reserve RAM buffer [mem 0x0009e000-0x0009ffff]
[    0.097745] e820: reserve RAM buffer [mem 0xcfee0000-0xcfffffff]
[    0.097935] Switched to clocksource refined-jiffies
[    0.100342] pnp: PnP ACPI init
[    0.100402] ACPI: bus type PNP registered
[    0.100829] system 00:00: [io  0x0480-0x048f] has been reserved
[    0.100870] system 00:00: [io  0x04d0-0x04d1] has been reserved
[    0.100909] system 00:00: [io  0xf000-0xf0fe] could not be reserved
[    0.100946] system 00:00: [io  0xf200-0xf2fe] has been reserved
[    0.100987] system 00:00: [io  0x0800-0x087f] has been reserved
[    0.101025] system 00:00: [io  0xfe00] has been reserved
[    0.101064] system 00:00: [mem 0xfec00000-0xfecfffff] could not be reserved
[    0.101102] system 00:00: [mem 0xfee00000-0xfeefffff] could not be reserved
[    0.101140] system 00:00: [mem 0xff780000-0xffefffff] has been reserved
[    0.101178] system 00:00: [mem 0xd0000000-0xdfffffff] has been reserved
[    0.101217] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.101238] pnp 00:01: [dma 4]
[    0.101266] pnp 00:01: Plug and Play ACPI device, IDs PNP0200 (active)
[    0.101325] pnp 00:02: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.101374] pnp 00:03: Plug and Play ACPI device, IDs PNP0c04 (active)
[    0.101412] pnp 00:04: Plug and Play ACPI device, IDs PNP0800 (active)
[    0.101467] pnp 00:05: Plug and Play ACPI device, IDs PNP0303 (active)
[    0.101566] pnp 00:06: Plug and Play ACPI device, IDs PNP0f13 (active)
[    0.101902] pnp 00:07: [dma 3]
[    0.101963] pnp 00:07: Plug and Play ACPI device, IDs PNP0401 (active)
[    0.102177] pnp 00:08: Plug and Play ACPI device, IDs PNP0501 (active)
[    0.102391] pnp 00:09: Plug and Play ACPI device, IDs PNP0501 (active)
[    0.102397] pnp: PnP ACPI: found 10 devices
[    0.102436] ACPI: bus type PNP unregistered
[    0.108846] Switched to clocksource acpi_pm
[    0.108921] pci 0000:00:01.0: BAR 14: assigned [mem 0xf4000000-0xf40fffff]
[    0.108960] pci 0000:00:03.0: BAR 0: assigned [mem 0xf4100000-0xf4100fff]
[    0.109001] pci 0000:00:03.1: BAR 0: assigned [mem 0xf4101000-0xf4101fff]
[    0.109040] pci 0000:00:03.2: BAR 0: assigned [mem 0xf4102000-0xf4102fff]
[    0.109080] pci 0000:00:03.3: BAR 0: assigned [mem 0xf4103000-0xf4103fff]
[    0.109119] pci 0000:00:09.0: BAR 1: assigned [mem 0xf4104000-0xf41040ff]
[    0.109161] pci 0000:01:00.0: BAR 6: assigned [mem 0xf4000000-0xf401ffff pref]
[    0.109201] pci 0000:01:00.0: BAR 2: assigned [mem 0xf4020000-0xf402ffff 64bit]
[    0.109247] pci 0000:01:00.1: BAR 0: assigned [mem 0xf4030000-0xf4033fff 64bit]
[    0.109292] pci 0000:00:01.0: PCI bridge to [bus 01]
[    0.109329] pci 0000:00:01.0:   bridge window [io  0x2000-0x2fff]
[    0.109368] pci 0000:00:01.0:   bridge window [mem 0xf4000000-0xf40fffff]
[    0.109407] pci 0000:00:01.0:   bridge window [mem 0xe0000000-0xefffffff pref]
[    0.109449] pci 0000:00:06.0: PCI bridge to [bus 02]
[    0.109493] pci_bus 0000:00: resource 4 [io  0x0000-0xffff]
[    0.109496] pci_bus 0000:00: resource 5 [mem 0xd0000000-0xffffffff]
[    0.109499] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    0.109502] pci_bus 0000:00: resource 7 [mem 0x130000000-0xfcffffffff]
[    0.109505] pci_bus 0000:01: resource 0 [io  0x2000-0x2fff]
[    0.109508] pci_bus 0000:01: resource 1 [mem 0xf4000000-0xf40fffff]
[    0.109511] pci_bus 0000:01: resource 2 [mem 0xe0000000-0xefffffff pref]
[    0.109557] NET: Registered protocol family 2
[    0.109860] TCP established hash table entries: 32768 (order: 7, 524288 bytes)
[    0.110226] TCP bind hash table entries: 32768 (order: 7, 524288 bytes)
[    0.110580] TCP: Hash tables configured (established 32768 bind 32768)
[    0.110707] TCP: reno registered
[    0.110753] UDP hash table entries: 2048 (order: 4, 65536 bytes)
[    0.110845] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes)
[    0.111028] NET: Registered protocol family 1
[    1.876017] pci 0000:00:03.3: EHCI: BIOS handoff failed (BIOS bug?) 01010001
[    1.876300] pci 0000:01:00.0: Boot video device
[    1.876306] PCI: CLS 64 bytes, default 64
[    1.876367] Unpacking initramfs...
[    2.293981] Freeing initrd memory: 14280K (ffff88003640c000 - ffff8800371fe000)
[    2.294122] agpgart-amd64 0000:00:00.0: AGP bridge [1039/0761]
[    2.296137] agpgart-amd64 0000:00:00.0: AGP aperture is 64M @ 0xf0000000
[    2.296294] init_memory_mapping: [mem 0xf0000000-0xf3ffffff]
[    2.296332]  [mem 0xf0000000-0xf3ffffff] page 2M
[    2.296344] PCI-DMA: using GART IOMMU.
[    2.296380] PCI-DMA: Warning: Small IOMMU 32MB. Consider increasing the AGP aperture in BIOS
[    2.296424] PCI-DMA: Reserving 32MB of IOMMU area in the AGP aperture
[    2.299625] Simple Boot Flag at 0x69 set to 0x1
[    2.299781] microcode: AMD CPU family 0xf not supported
[    2.300139] audit: initializing netlink socket (disabled)
[    2.300196] type=2000 audit(1398667332.299:1): initialized
[    2.316984] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    2.317520] VFS: Disk quotas dquot_6.5.2
[    2.317593] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    2.317742] msgmni has been set to 8050
[    2.318075] alg: No test for stdrng (krng)
[    2.318146] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    2.318221] io scheduler noop registered
[    2.318258] io scheduler deadline registered
[    2.318299] io scheduler cfq registered (default)
[    2.318474] pcieport 0000:00:06.0: irq 40 for MSI/MSI-X
[    2.318561] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    2.318617] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    2.318718] GHES: HEST is not enabled!
[    2.318829] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    2.339228] 00:08: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    2.359636] 00:09: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
[    2.359992] Linux agpgart interface v0.103
[    2.360161] i8042: PNP: PS/2 Controller [PNP0303:KEYB,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
[    2.362984] serio: i8042 KBD port at 0x60,0x64 irq 1
[    2.363027] serio: i8042 AUX port at 0x60,0x64 irq 12
[    2.363215] mousedev: PS/2 mouse device common for all mice
[    2.363310] rtc_cmos 00:02: RTC can wake from S4
[    2.363483] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
[    2.363548] rtc_cmos 00:02: alarms up to one year, y3k, 114 bytes nvram
[    2.363601] AMD IOMMUv2 driver by Joerg Roedel <joerg.roedel@amd.com>
[    2.363637] AMD IOMMUv2 functionality not available on this system
[    2.363771] TCP: cubic registered
[    2.363825] NET: Registered protocol family 10
[    2.364133] mip6: Mobile IPv6
[    2.364176] NET: Registered protocol family 17
[    2.364214] mpls_gso: MPLS GSO support
[    2.364511] registered taskstats version 1
[    2.365109] rtc_cmos 00:02: setting system clock to 2014-04-28 06:42:13 UTC (1398667333)
[    2.365208] PM: Hibernation image not present or could not be loaded.
[    2.366657] Freeing unused kernel memory: 972K (ffffffff818ac000 - ffffffff8199f000)
[    2.366703] Write protecting the kernel read-only data: 8192k
[    2.372247] Freeing unused kernel memory: 1408K (ffff8800014a0000 - ffff880001600000)
[    2.374105] Freeing unused kernel memory: 472K (ffff88000178a000 - ffff880001800000)
[    2.395542] systemd-udevd[51]: starting version 204
[    2.407450] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    2.461736] SCSI subsystem initialized
[    2.462915] ACPI: bus type USB registered
[    2.462984] usbcore: registered new interface driver usbfs
[    2.463035] usbcore: registered new interface driver hub
[    2.466948] usbcore: registered new device driver usb
[    2.467619] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.468361] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    2.468667] ohci-pci: OHCI PCI platform driver
[    2.468961] ohci-pci 0000:00:03.0: OHCI PCI host controller
[    2.469007] ohci-pci 0000:00:03.0: new USB bus registered, assigned bus number 1
[    2.469082] ohci-pci 0000:00:03.0: irq 20, io mem 0xf4100000
[    2.475564] libata version 3.00 loaded.
[    2.485829] ehci-pci: EHCI PCI platform driver
[    2.526123] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
[    2.526169] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.526209] usb usb1: Product: OHCI PCI host controller
[    2.526246] usb usb1: Manufacturer: Linux 3.12.0 ohci_hcd
[    2.526283] usb usb1: SerialNumber: 0000:00:03.0
[    2.526485] hub 1-0:1.0: USB hub found
[    2.526532] hub 1-0:1.0: 3 ports detected
[    2.528275] ohci-pci 0000:00:03.1: OHCI PCI host controller
[    2.528330] ohci-pci 0000:00:03.1: new USB bus registered, assigned bus number 2
[    2.528408] ohci-pci 0000:00:03.1: irq 21, io mem 0xf4101000
[    2.586119] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    2.586165] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.587036] usb usb2: Product: OHCI PCI host controller
[    2.587073] usb usb2: Manufacturer: Linux 3.12.0 ohci_hcd
[    2.587110] usb usb2: SerialNumber: 0000:00:03.1
[    2.588184] hub 2-0:1.0: USB hub found
[    2.588235] hub 2-0:1.0: 3 ports detected
[    2.589256] ohci-pci 0000:00:03.2: OHCI PCI host controller
[    2.589310] ohci-pci 0000:00:03.2: new USB bus registered, assigned bus number 3
[    2.589386] ohci-pci 0000:00:03.2: irq 22, io mem 0xf4102000
[    2.646096] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[    2.646142] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.646182] usb usb3: Product: OHCI PCI host controller
[    2.646219] usb usb3: Manufacturer: Linux 3.12.0 ohci_hcd
[    2.646256] usb usb3: SerialNumber: 0000:00:03.2
[    2.646457] hub 3-0:1.0: USB hub found
[    2.646505] hub 3-0:1.0: 2 ports detected
[    2.647090] pata_sis 0000:00:02.5: version 0.5.2
[    2.650939] scsi0 : pata_sis
[    2.652058] scsi1 : pata_sis
[    2.652177] ata1: PATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x1c80 irq 14
[    2.652215] ata2: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x1c88 irq 15
[    2.816241] ata1.00: ATAPI: HL-DT-STDVD-ROM GDR8164B, 0F08, max UDMA/33
[    2.832225] ata1.00: configured for UDMA/33
[    2.844173] ehci-pci 0000:00:03.3: EHCI Host Controller
[    2.844224] ehci-pci 0000:00:03.3: new USB bus registered, assigned bus number 4
[    2.844303] ehci-pci 0000:00:03.3: cache line size of 64 is not supported
[    2.844330] ehci-pci 0000:00:03.3: irq 23, io mem 0xf4103000
[    2.852434] scsi 0:0:0:0: CD-ROM            HL-DT-ST DVD-ROM GDR8164B 0F08 PQ: 0 ANSI: 5
[    2.856057] ehci-pci 0000:00:03.3: USB 2.0 started, EHCI 1.00
[    2.856163] usb usb4: New USB device found, idVendor=1d6b, idProduct=0002
[    2.856202] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.856242] usb usb4: Product: EHCI Host Controller
[    2.856279] usb usb4: Manufacturer: Linux 3.12.0 ehci_hcd
[    2.856316] usb usb4: SerialNumber: 0000:00:03.3
[    2.856517] hub 4-0:1.0: USB hub found
[    2.856566] hub 4-0:1.0: 8 ports detected
[    2.869752] sr0: scsi3-mmc drive: 32x/32x cd/rw xa/form2 cdda tray
[    2.869797] cdrom: Uniform CD-ROM driver Revision: 3.20
[    2.870423] sr 0:0:0:0: Attached scsi CD-ROM sr0
[    2.874060] sr 0:0:0:0: Attached scsi generic sg0 type 5
[    2.920096] hub 1-0:1.0: USB hub found
[    2.920150] hub 1-0:1.0: 3 ports detected
[    2.984094] hub 2-0:1.0: USB hub found
[    2.984149] hub 2-0:1.0: 3 ports detected
[    3.048101] hub 3-0:1.0: USB hub found
[    3.048154] hub 3-0:1.0: 2 ports detected
[    3.048531] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[    3.048824] r8169 0000:00:09.0 (unregistered net_device): not PCI Express
[    3.049187] r8169 0000:00:09.0 eth0: RTL8110s at 0xffffc9000063c000, 00:30:05:d3:3e:73, XID 04000000 IRQ 19
[    3.049231] r8169 0000:00:09.0 eth0: jumbo features [frames: 7152 bytes, tx checksumming: ok]
[    3.049750] sata_sis 0000:00:05.0: version 1.0
[    3.050193] sata_sis 0000:00:05.0: Detected SiS 182/965L chipset
[    3.053205] scsi2 : sata_sis
[    3.055921] scsi3 : sata_sis
[    3.056092] ata3: SATA max UDMA/133 cmd 0x1cb0 ctl 0x1ca4 bmdma 0x1c90 irq 17
[    3.056132] ata4: SATA max UDMA/133 cmd 0x1ca8 ctl 0x1ca0 bmdma 0x1c98 irq 17
[    3.296016] tsc: Refined TSC clocksource calibration: 1800.063 MHz
[    3.376045] ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    3.384292] ata3.00: ATA-7: WDC WD800JD-55MUA1, 10.01E01, max UDMA/133
[    3.384330] ata3.00: 156301488 sectors, multi 16: LBA48 NCQ (depth 0/32)
[    3.392299] ata3.00: configured for UDMA/133
[    3.392474] scsi 2:0:0:0: Direct-Access     ATA      WDC WD800JD-55MU 10.0 PQ: 0 ANSI: 5
[    3.392682] scsi 2:0:0:0: Attached scsi generic sg1 type 0
[    3.400467] sd 2:0:0:0: [sda] 156301488 512-byte logical blocks: (80.0 GB/74.5 GiB)
[    3.400571] sd 2:0:0:0: [sda] Write Protect is off
[    3.400609] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    3.400635] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    3.412492]  sda: sda1
[    3.412888] sd 2:0:0:0: [sda] Attached SCSI disk
[    3.712042] ata4: SATA link down (SStatus 0 SControl 300)
[    4.296083] Switched to clocksource tsc
[    5.552031] floppy0: no floppy controllers found
[    5.552084] work still pending
[    5.575286] device-mapper: uevent: version 1.0.3
[    5.575976] device-mapper: ioctl: 4.26.0-ioctl (2013-08-15) initialised: dm-devel@redhat.com
[    5.601289] bio: create slab <bio-1> at 1
[    5.882737] PM: Starting manual resume from disk
[    5.882786] PM: Hibernation image partition 254:1 present
[    5.882788] PM: Looking for hibernation image.
[    5.883039] PM: Image not found (code -22)
[    5.883042] PM: Hibernation image not present or could not be loaded.
[    5.900556] EXT4-fs (dm-0): mounting ext3 file system using the ext4 subsystem
[    5.941200] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
[    9.486729] systemd-udevd[335]: starting version 204
[   11.527699] parport_pc 00:07: reported by Plug and Play ACPI
[   11.527800] parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE]
[   11.541020] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input2
[   11.541070] ACPI: Power Button [PWRB]
[   11.541185] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
[   11.541226] ACPI: Power Button [PWRF]
[   12.099115] EDAC MC: Ver: 3.0.0
[   12.103144] MCE: In-kernel MCE decoding enabled.
[   12.292250] AMD64 EDAC driver v3.4.0
[   12.292332] EDAC amd64: DRAM ECC enabled.
[   12.292372] EDAC amd64: K8 revE or earlier detected (node 0).
[   12.292450] EDAC amd64: CS0: Double data rate SDRAM
[   12.292486] EDAC amd64: CS1: Double data rate SDRAM
[   12.292522] EDAC amd64: CS2: Double data rate SDRAM
[   12.292708] EDAC MC0: Giving out device to 'amd64_edac' 'K8': DEV 0000:00:18.2
[   12.296104] EDAC PCI0: Giving out device to module 'amd64_edac' controller 'EDAC PCI controller': DEV '0000:00:18.2' (POLLED)
[   12.350811] input: PC Speaker as /devices/platform/pcspkr/input/input4
[   12.572410] powernow-k8: fid 0xa (1800 MHz), vid 0x6
[   12.572453] powernow-k8: fid 0x2 (1000 MHz), vid 0x12
[   12.572526] powernow-k8: Found 1 AMD Sempron(tm) Processor 3000+ (1 cpu cores) (version 2.20.00)
[   12.772190] tsc: Marking TSC unstable due to cpufreq changes
[   12.772293] Switched to clocksource acpi_pm
[   13.056057] input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8042/serio1/input/input5
[   13.181017] [drm] Initialized drm 1.1.0 20060810
[   13.292755] pcieport 0000:00:01.0: driver skip pci_set_master, fix it!
[   13.292936] hda-intel 0000:01:00.1: Handle VGA-switcheroo audio client
[   13.293041] snd_hda_intel 0000:01:00.1: irq 41 for MSI/MSI-X
[   13.295413] Uhhuh. NMI received for unknown reason 21 on CPU 0.
[   13.295459] Do you have a strange power saving mode enabled?
[   13.295500] Dazed and confused, but trying to continue
[   13.688040] intel8x0_measure_ac97_clock: measured 53910 usecs (2594 samples)
[   13.688092] intel8x0: clocking to 48000
[   14.092331] [drm] radeon kernel modesetting enabled.
[   14.300022] hda-intel 0000:01:00.1: Codec #0 probe error; disabling it...
[   14.302316] Uhhuh. NMI received for unknown reason 31 on CPU 0.
[   14.302358] Do you have a strange power saving mode enabled?
[   14.302399] Dazed and confused, but trying to continue
[   15.496053] floppy0: no floppy controllers found
[   15.496115] work still pending
[   19.328027] hda-intel 0000:01:00.1: no codecs initialized
[   19.329223] [drm] initializing kernel modesetting (RV710 0x1002:0x9553 0x174B:0x3092).
[   19.329300] [drm] register mmio base: 0xF4020000
[   19.329342] [drm] register mmio size: 65536
[   19.329509] ATOM BIOS: 113
[   19.329620] radeon 0000:01:00.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used)
[   19.329670] radeon 0000:01:00.0: GTT: 1024M 0x0000000020000000 - 0x000000005FFFFFFF
[   19.329716] [drm] Detected VRAM RAM=512M, BAR=256M
[   19.329757] [drm] RAM width 64bits DDR
[   19.330933] [TTM] Zone  kernel: Available graphics memory: 2062404 kiB
[   19.330983] [TTM] Initializing pool allocator
[   19.331030] [TTM] Initializing DMA pool allocator
[   19.331113] [drm] radeon: 512M of VRAM memory ready
[   19.331155] [drm] radeon: 1024M of GTT memory ready.
[   19.408479] [drm] GART: num cpu pages 262144, num gpu pages 262144
[   19.432512] [drm] Loading RV710 Microcode
[   19.451947] [drm] PCIE GART of 1024M enabled (table at 0x000000000025D000).
[   19.455506] radeon 0000:01:00.0: WB enabled
[   19.455562] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000020000c00 and cpu addr 0xffff8800cdf82c00
[   19.455611] radeon 0000:01:00.0: fence driver on ring 3 use gpu addr 0x0000000020000c0c and cpu addr 0xffff8800cdf82c0c
[   19.456662] radeon 0000:01:00.0: fence driver on ring 5 use gpu addr 0x000000000005c598 and cpu addr 0xffffc90000a9c598
[   19.457325] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[   19.457377] [drm] Driver supports precise vblank timestamp query.
[   19.457460] radeon 0000:01:00.0: irq 41 for MSI/MSI-X
[   19.457484] radeon 0000:01:00.0: radeon: using MSI.
[   19.457564] [drm] radeon: irq initialized.
[   19.505671] [drm] ring test on 0 succeeded in 1 usecs
[   19.506626] [drm] ring test on 3 succeeded in 1 usecs
[   19.701848] [drm] ring test on 5 succeeded in 1 usecs
[   19.701899] [drm] UVD initialized successfully.
[   19.702138] [drm] Enabling audio 0 support
[   19.702206] [drm] ib test on ring 0 succeeded in 0 usecs
[   19.702266] [drm] ib test on ring 3 succeeded in 0 usecs
[   19.861668] Uhhuh. NMI received for unknown reason 21 on CPU 0.
[   19.861694] Do you have a strange power saving mode enabled?
[   19.861717] Dazed and confused, but trying to continue
[   19.864027] [drm] ib test on ring 5 succeeded
[   19.864416] [drm] Radeon Display Connectors
[   19.864457] [drm] Connector 0:
[   19.864492] [drm]   DVI-I-1
[   19.864527] [drm]   HPD1
[   19.864563] [drm]   DDC: 0x7f10 0x7f10 0x7f14 0x7f14 0x7f18 0x7f18 0x7f1c 0x7f1c
[   19.864601] [drm]   Encoders:
[   19.864636] [drm]     CRT1: INTERNAL_KLDSCP_DAC1
[   19.864672] [drm]     DFP2: INTERNAL_UNIPHY2
[   19.864707] [drm] Connector 1:
[   19.864742] [drm]   HDMI-A-1
[   19.864777] [drm]   HPD4
[   19.864812] [drm]   DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c
[   19.864850] [drm]   Encoders:
[   19.864885] [drm]     DFP1: INTERNAL_UNIPHY
[   19.864920] [drm] Connector 2:
[   19.864955] [drm]   VGA-1
[   19.864991] [drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
[   19.865029] [drm]   Encoders:
[   19.865064] [drm]     CRT2: INTERNAL_KLDSCP_DAC2
[   19.865131] [drm] Internal thermal controller with fan control
[   19.865218] [drm] radeon: power management initialized
[   19.932248] [drm] fb mappable at 0xE0460000
[   19.932291] [drm] vram apper at 0xE0000000
[   19.932326] [drm] size 9216000
[   19.932361] [drm] fb depth is 24
[   19.932396] [drm]    pitch is 7680
[   19.932603] fbcon: radeondrmfb (fb0) is primary device
[   20.177755] Console: switching to colour frame buffer device 180x56
[   20.191116] radeon 0000:01:00.0: fb0: radeondrmfb frame buffer device
[   20.191220] radeon 0000:01:00.0: registered panic notifier
[   20.191318] [drm] Initialized radeon 2.34.0 20080528 for 0000:01:00.0 on minor 0
[   21.402354] EXT4-fs (dm-0): re-mounted. Opts: (null)
[   21.702829] EXT4-fs (dm-0): re-mounted. Opts: errors=remount-ro
[   22.571971] lp0: using parport0 (interrupt-driven).
[   22.633161] ppdev: user-space parallel port driver
[   23.067419] loop: module loaded
[   23.224405] fuse init (API version 7.22)
[   23.489987] Adding 4194300k swap on /dev/mapper/vg0-boole--swap.  Priority:-1 extents:1 across:4194300k 
[  190.181570] EXT4-fs (dm-2): mounting ext3 file system using the ext4 subsystem
[  190.196503] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
[  191.732400] Bridge firewalling registered
[  191.778953] device eth0 entered promiscuous mode
[  191.804792] r8169 0000:00:09.0 eth0: link down
[  191.808532] r8169 0000:00:09.0 eth0: link down
[  191.813136] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[  191.818405] IPv6: ADDRCONF(NETDEV_UP): br0: link is not ready
[  193.312000] r8169 0000:00:09.0 eth0: link up
[  193.315701] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[  193.319857] br0: port 1(eth0) entered forwarding state
[  193.323574] br0: port 1(eth0) entered forwarding state
[  193.327219] IPv6: ADDRCONF(NETDEV_CHANGE): br0: link becomes ready
[  196.685577] RPC: Registered named UNIX socket transport module.
[  196.689409] RPC: Registered udp transport module.
[  196.693246] RPC: Registered tcp transport module.
[  196.697024] RPC: Registered tcp NFSv4.1 backchannel transport module.
[  196.799039] FS-Cache: Loaded
[  196.951974] FS-Cache: Netfs 'nfs' registered for caching
[  197.170487] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[  197.460781] Key type dns_resolver registered
[  197.552757] NFS: Registering the id_resolver key type
[  197.556582] Key type id_resolver registered
[  197.560327] Key type id_legacy registered
[  208.352016] br0: port 1(eth0) entered forwarding state
[  212.596025] RPC: AUTH_GSS upcall timed out.
[  212.596025] Please check user daemon is running.
[  235.366798] Bluetooth: Core ver 2.16
[  235.370750] NET: Registered protocol family 31
[  235.374411] Bluetooth: HCI device and connection manager initialized
[  235.378699] Bluetooth: HCI socket layer initialized
[  235.382541] Bluetooth: L2CAP socket layer initialized
[  235.386939] Bluetooth: SCO socket layer initialized
[  235.468132] Bluetooth: RFCOMM TTY layer initialized
[  235.471700] Bluetooth: RFCOMM socket layer initialized
[  235.475217] Bluetooth: RFCOMM ver 1.11
[  235.611676] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[  235.615268] Bluetooth: BNEP filters: protocol multicast
[  235.619866] Bluetooth: BNEP socket layer initialized
[  252.305905] systemd-logind[3430]: New seat seat0.
[  252.322656] systemd-logind[3430]: Watching system buttons on /dev/input/event2 (Power Button)
[  252.322851] systemd-logind[3430]: Watching system buttons on /dev/input/event1 (Power Button)
[  252.325298] systemd-logind[3430]: New session c1 of user lightdm.
[  252.325591] systemd-logind[3430]: Linked /tmp/.X11-unix/X0 to /run/user/108/X11-display.
[  294.429883] systemd-logind[3430]: New session c2 of user thomas.

[-- Attachment #1.3: dmesg-v3.14 --]
[-- Type: text/plain, Size: 44885 bytes --]

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.14.0 (thomas@hertz) (gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu9) ) #2 SMP Mon Apr 28 08:09:41 CEST 2014
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.14.0 root=/dev/mapper/vg0-boole--root ro
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009dfff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009e000-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e4000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000cfedffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000cfee0000-0x00000000cfeeefff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000cfeef000-0x00000000cfefffff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000cff00000-0x00000000cfffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec0ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fff00000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000012fffffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.34 present.
[    0.000000] DMI: FUJITSU SIEMENS D2264-A1            /D2264-A1, BIOS 5.00 R1.07-01.2264.A1            06/07/2006
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] AGP bridge at 00:00:00
[    0.000000] Aperture from AGP @ f0000000 old size 32 MB
[    0.000000] Aperture from AGP @ f0000000 size 32 MB (APSIZE f38)
[    0.000000] e820: last_pfn = 0x130000 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-D3FFF write-protect
[    0.000000]   D4000-E3FFF uncachable
[    0.000000]   E4000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 0000000000 mask FF80000000 write-back
[    0.000000]   1 base 0100000000 mask FFE0000000 write-back
[    0.000000]   2 base 0120000000 mask FFF0000000 write-back
[    0.000000]   3 base 0080000000 mask FFC0000000 write-back
[    0.000000]   4 base 00C0000000 mask FFF0000000 write-back
[    0.000000]   5 base 00CFF00000 mask FFFFF00000 uncachable
[    0.000000]   6 base 00F0000000 mask FFFE000000 write-combining
[    0.000000]   7 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] e820: last_pfn = 0xcfee0 max_arch_pfn = 0x400000000
[    0.000000] found SMP MP-table at [mem 0x000f73b0-0x000f73bf] mapped at [ffff8800000f73b0]
[    0.000000] Base memory trampoline at [ffff880000098000] 98000 size 24576
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000]  [mem 0x00000000-0x000fffff] page 4k
[    0.000000] BRK [0x01aa1000, 0x01aa1fff] PGTABLE
[    0.000000] BRK [0x01aa2000, 0x01aa2fff] PGTABLE
[    0.000000] BRK [0x01aa3000, 0x01aa3fff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x12fe00000-0x12fffffff]
[    0.000000]  [mem 0x12fe00000-0x12fffffff] page 2M
[    0.000000] BRK [0x01aa4000, 0x01aa4fff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x12c000000-0x12fdfffff]
[    0.000000]  [mem 0x12c000000-0x12fdfffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x100000000-0x12bffffff]
[    0.000000]  [mem 0x100000000-0x12bffffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x00100000-0xcfedffff]
[    0.000000]  [mem 0x00100000-0x001fffff] page 4k
[    0.000000]  [mem 0x00200000-0xcfdfffff] page 2M
[    0.000000]  [mem 0xcfe00000-0xcfedffff] page 4k
[    0.000000] RAMDISK: [mem 0x36392000-0x371c0fff]
[    0.000000] ACPI: RSDP 00000000000f7350 000024 (v02 PTLTD )
[    0.000000] ACPI: XSDT 00000000cfeeb7e4 00004C (v01 PTLTD  ? XSDT   00050000  LTP 00000000)
[    0.000000] ACPI: FACP 00000000cfeeb8a4 0000F4 (v03 FSC       \xfffffff7P?-? 00050000      000F4240)
[    0.000000] ACPI BIOS Warning (bug): 32/64X length mismatch in FADT/Pm1aControlBlock: 16/32 (20131218/tbfadt-603)
[    0.000000] ACPI BIOS Warning (bug): 32/64X length mismatch in FADT/PmTimerBlock: 32/24 (20131218/tbfadt-603)
[    0.000000] ACPI BIOS Warning (bug): 32/64X length mismatch in FADT/Gpe0Block: 32/16 (20131218/tbfadt-603)
[    0.000000] ACPI BIOS Warning (bug): 32/64X length mismatch in FADT/Gpe1Block: 32/16 (20131218/tbfadt-603)
[    0.000000] ACPI BIOS Warning (bug): Invalid length for FADT/Pm1aControlBlock: 32, using default 16 (20131218/tbfadt-684)
[    0.000000] ACPI BIOS Warning (bug): Invalid length for FADT/PmTimerBlock: 24, using default 32 (20131218/tbfadt-684)
[    0.000000] ACPI: DSDT 00000000cfeeb998 0034FB (v01 FSC    D2030    00050000 MSFT 02000002)
[    0.000000] ACPI: FACS 00000000cfeeffc0 000040
[    0.000000] ACPI: SSDT 00000000cfeeee93 0000B5 (v01 PTLTD  POWERNOW 00050000  LTP 00000001)
[    0.000000] ACPI: APIC 00000000cfeeef48 000050 (v01 PTLTD  ? APIC   00050000  LTP 00000000)
[    0.000000] ACPI: MCFG 00000000cfeeef98 000040 (v01 PTLTD    MCFG   00050000  LTP 00000000)
[    0.000000] ACPI: BOOT 00000000cfeeefd8 000028 (v01 PTLTD  $SBFTBL$ 00050000  LTP 00000001)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] Scanning NUMA topology in Northbridge 24
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000012fffffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x12fffffff]
[    0.000000]   NODE_DATA [mem 0x12fff7000-0x12fffbfff]
[    0.000000]  [ffffea0000000000-ffffea00043fffff] PMD -> [ffff88012b600000-ffff88012effffff] on node 0
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x00001000-0x00ffffff]
[    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
[    0.000000]   Normal   [mem 0x100000000-0x12fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00001000-0x0009dfff]
[    0.000000]   node   0: [mem 0x00100000-0xcfedffff]
[    0.000000]   node   0: [mem 0x100000000-0x12fffffff]
[    0.000000] On node 0 totalpages: 1048189
[    0.000000]   DMA zone: 56 pages used for memmap
[    0.000000]   DMA zone: 21 pages reserved
[    0.000000]   DMA zone: 3997 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 11589 pages used for memmap
[    0.000000]   DMA32 zone: 847584 pages, LIFO batch:31
[    0.000000]   Normal zone: 2688 pages used for memmap
[    0.000000]   Normal zone: 196608 pages, LIFO batch:31
[    0.000000] ACPI: PM-Timer IO Port: 0xf008
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 1, version 20, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] smpboot: Allowing 1 CPUs, 0 hotplug CPUs
[    0.000000] nr_irqs_gsi: 40
[    0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000e3fff]
[    0.000000] PM: Registered nosave memory: [mem 0x000e4000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0xcfee0000-0xcfeeefff]
[    0.000000] PM: Registered nosave memory: [mem 0xcfeef000-0xcfefffff]
[    0.000000] PM: Registered nosave memory: [mem 0xcff00000-0xcfffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xd0000000-0xfebfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec00000-0xfec0ffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfec10000-0xfedfffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfee00000-0xfee00fff]
[    0.000000] PM: Registered nosave memory: [mem 0xfee01000-0xffefffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfff00000-0xffffffff]
[    0.000000] e820: [mem 0xd0000000-0xfebfffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:1 nr_node_ids:1
[    0.000000] PERCPU: Embedded 28 pages/cpu @ffff88012fc00000 s86016 r8192 d20480 u2097152
[    0.000000] pcpu-alloc: s86016 r8192 d20480 u2097152 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 1033835
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.14.0 root=/dev/mapper/vg0-boole--root ro
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Checking aperture...
[    0.000000] AGP bridge at 00:00:00
[    0.000000] Aperture from AGP @ f0000000 old size 32 MB
[    0.000000] Aperture from AGP @ f0000000 size 32 MB (APSIZE f38)
[    0.000000] Node 0: aperture @ f0000000 size 64 MB
[    0.000000] Memory: 4041400K/4192756K available (4880K kernel code, 702K rwdata, 1624K rodata, 996K init, 960K bss, 151356K reserved)
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=1.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS:33024 nr_irqs:256 16
[    0.000000] spurious 8259A interrupt: IRQ7.
[    0.000000] Console: colour VGA+ 80x25
[    0.000000] console [tty0] enabled
[    0.000000] allocated 16777216 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 1799.970 MHz processor
[    0.008013] Calibrating delay loop (skipped), value calculated using timer frequency.. 3599.94 BogoMIPS (lpj=7199880)
[    0.008086] pid_max: default: 32768 minimum: 301
[    0.008134] ACPI: Core revision 20131218
[    0.013040] ACPI: All ACPI Tables successfully acquired
[    0.014533] Security Framework initialized
[    0.014574] AppArmor: AppArmor disabled by boot time parameter
[    0.014611] Yama: becoming mindful.
[    0.015046] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.017849] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.019209] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes)
[    0.019254] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes)
[    0.019635] Initializing cgroup subsys memory
[    0.019682] Initializing cgroup subsys devices
[    0.019719] Initializing cgroup subsys freezer
[    0.019755] Initializing cgroup subsys net_cls
[    0.019792] Initializing cgroup subsys blkio
[    0.019828] Initializing cgroup subsys perf_event
[    0.019894] tseg: 00cff00000
[    0.019898] mce: CPU supports 5 MCE banks
[    0.019945] Last level iTLB entries: 4KB 512, 2MB 8, 4MB 4
[    0.019945] Last level dTLB entries: 4KB 512, 2MB 8, 4MB 4, 1GB 0
[    0.019945] tlb_flushall_shift: 6
[    0.025016] Freeing SMP alternatives memory: 20K (ffffffff819aa000 - ffffffff819af000)
[    0.026481] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=0 pin2=0
[    0.066206] smpboot: CPU0: AMD Sempron(tm) Processor 3000+ (fam: 0f, model: 2f, stepping: 02)
[    0.068000] Performance Events: AMD PMU driver.
[    0.068000] ... version:                0
[    0.068000] ... bit width:              48
[    0.068000] ... generic registers:      4
[    0.068000] ... value mask:             0000ffffffffffff
[    0.068000] ... max period:             00007fffffffffff
[    0.068000] ... fixed-purpose events:   0
[    0.068000] ... event mask:             000000000000000f
[    0.068000] x86: Booted up 1 node, 1 CPUs
[    0.068000] smpboot: Total of 1 processors activated (3599.94 BogoMIPS)
[    0.068000] devtmpfs: initialized
[    0.070871] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[    0.070991] PM: Registering ACPI NVS region [mem 0xcfeef000-0xcfefffff] (69632 bytes)
[    0.071315] NET: Registered protocol family 16
[    0.071537] cpuidle: using governor ladder
[    0.071574] cpuidle: using governor menu
[    0.071615] node 0 link 0: io port [0, fffff]
[    0.071618] TOM: 00000000d0000000 aka 3328M
[    0.071655] node 0 link 0: mmio [d0000000, dfffffff]
[    0.071659] node 0 link 0: mmio [a0000, bffff]
[    0.071662] node 0 link 0: mmio [d0000000, fe0bffff]
[    0.071664] TOM2: 0000000130000000 aka 4864M
[    0.071701] bus: [bus 00-ff] on node 0 link 0
[    0.071703] bus: 00 [io  0x0000-0xffff]
[    0.071705] bus: 00 [mem 0xd0000000-0xffffffff]
[    0.071707] bus: 00 [mem 0x000a0000-0x000bffff]
[    0.071709] bus: 00 [mem 0x130000000-0xfcffffffff]
[    0.071750] ACPI: bus type PCI registered
[    0.071787] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.071932] PCI: MMCONFIG for domain 0000 [bus 00-01] at [mem 0xd0000000-0xd01fffff] (base 0xd0000000)
[    0.071973] PCI: not using MMCONFIG
[    0.072016] PCI: Using configuration type 1 for base access
[    0.073347] bio: create slab <bio-0> at 0
[    0.073503] ACPI: Added _OSI(Module Device)
[    0.073541] ACPI: Added _OSI(Processor Device)
[    0.073576] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.073612] ACPI: Added _OSI(Processor Aggregator Device)
[    0.076055] ACPI: Interpreter enabled
[    0.076108] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20131218/hwxface-580)
[    0.076223] ACPI: (supports S0 S1 S3 S4 S5)
[    0.076259] ACPI: Using IOAPIC for interrupt routing
[    0.076324] PCI: MMCONFIG for domain 0000 [bus 00-01] at [mem 0xd0000000-0xd01fffff] (base 0xd0000000)
[    0.076728] PCI: MMCONFIG at [mem 0xd0000000-0xd01fffff] reserved in ACPI motherboard resources
[    0.076908] PCI: Ignoring host bridge windows from ACPI; if necessary, use "pci=use_crs" and report a bug
[    0.077065] ACPI: No dock devices found.
[    0.082861] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.083740] acpi PNP0A03:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[    0.083784] acpi PNP0A03:00: _OSC failed (AE_NOT_FOUND); disabling ASPM
[    0.083919] acpi PNP0A03:00: host bridge window [io  0x0000-0x0cf7] (ignored)
[    0.083922] acpi PNP0A03:00: host bridge window [io  0x0d00-0xffff] (ignored)
[    0.083925] acpi PNP0A03:00: host bridge window [mem 0x000a0000-0x000bffff] (ignored)
[    0.083928] acpi PNP0A03:00: host bridge window [mem 0x000c8000-0x000dffff] (ignored)
[    0.083931] acpi PNP0A03:00: host bridge window [mem 0xd0000000-0xfebfffff] (ignored)
[    0.083934] acpi PNP0A03:00: host bridge window [mem 0xfed00000-0xfedfffff] (ignored)
[    0.083937] acpi PNP0A03:00: host bridge window [mem 0xfef00000-0xff77ffff] (ignored)
[    0.083939] PCI: root bus 00: hardware-probed resources
[    0.083945] acpi PNP0A03:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-01] only partially covers this bridge
[    0.084187] PCI host bridge to bus 0000:00
[    0.084226] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.084263] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    0.084300] pci_bus 0000:00: root bus resource [mem 0xd0000000-0xffffffff]
[    0.084338] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[    0.084375] pci_bus 0000:00: root bus resource [mem 0x130000000-0xfcffffffff]
[    0.084426] pci 0000:00:00.0: [1039:0761] type 00 class 0x060000
[    0.084435] pci 0000:00:00.0: reg 0x10: [mem 0xf0000000-0xf1ffffff]
[    0.084569] pci 0000:00:01.0: [1039:0004] type 01 class 0x060400
[    0.084623] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[    0.084664] pci 0000:00:01.0: System wakeup disabled by ACPI
[    0.084755] pci 0000:00:02.0: [1039:0965] type 00 class 0x060100
[    0.084877] pci 0000:00:02.5: [1039:5513] type 00 class 0x01018a
[    0.084899] pci 0000:00:02.5: reg 0x10: [io  0x01f0-0x01f7]
[    0.084906] pci 0000:00:02.5: reg 0x14: [io  0x03f4-0x03f7]
[    0.084913] pci 0000:00:02.5: reg 0x18: [io  0x0170-0x0177]
[    0.084920] pci 0000:00:02.5: reg 0x1c: [io  0x0374-0x0377]
[    0.084928] pci 0000:00:02.5: reg 0x20: [io  0x1c80-0x1c8f]
[    0.084957] pci 0000:00:02.5: PME# supported from D3cold
[    0.085045] pci 0000:00:02.7: [1039:7012] type 00 class 0x040100
[    0.085058] pci 0000:00:02.7: reg 0x10: [io  0x1400-0x14ff]
[    0.085065] pci 0000:00:02.7: reg 0x14: [io  0x1000-0x107f]
[    0.085110] pci 0000:00:02.7: supports D1 D2
[    0.085113] pci 0000:00:02.7: PME# supported from D3hot D3cold
[    0.085149] pci 0000:00:02.7: System wakeup disabled by ACPI
[    0.085238] pci 0000:00:03.0: [1039:7001] type 00 class 0x0c0310
[    0.085248] pci 0000:00:03.0: reg 0x10: [mem 0xf2000000-0xf2000fff]
[    0.085371] pci 0000:00:03.0: System wakeup disabled by ACPI
[    0.085469] pci 0000:00:03.1: [1039:7001] type 00 class 0x0c0310
[    0.085479] pci 0000:00:03.1: reg 0x10: [mem 0xf2001000-0xf2001fff]
[    0.085595] pci 0000:00:03.1: System wakeup disabled by ACPI
[    0.085695] pci 0000:00:03.2: [1039:7001] type 00 class 0x0c0310
[    0.085705] pci 0000:00:03.2: reg 0x10: [mem 0xf2002000-0xf2002fff]
[    0.085814] pci 0000:00:03.2: System wakeup disabled by ACPI
[    0.085914] pci 0000:00:03.3: [1039:7002] type 00 class 0x0c0320
[    0.085926] pci 0000:00:03.3: reg 0x10: [mem 0xf2003000-0xf2003fff]
[    0.085973] pci 0000:00:03.3: PME# supported from D0 D3hot D3cold
[    0.086012] pci 0000:00:03.3: System wakeup disabled by ACPI
[    0.086115] pci 0000:00:05.0: [1039:0182] type 00 class 0x01018f
[    0.086127] pci 0000:00:05.0: reg 0x10: [io  0x1cb0-0x1cb7]
[    0.086135] pci 0000:00:05.0: reg 0x14: [io  0x1ca4-0x1ca7]
[    0.086142] pci 0000:00:05.0: reg 0x18: [io  0x1ca8-0x1caf]
[    0.086149] pci 0000:00:05.0: reg 0x1c: [io  0x1ca0-0x1ca3]
[    0.086156] pci 0000:00:05.0: reg 0x20: [io  0x1c90-0x1c9f]
[    0.086164] pci 0000:00:05.0: reg 0x24: [io  0x1c00-0x1c7f]
[    0.086188] pci 0000:00:05.0: PME# supported from D3cold
[    0.086288] pci 0000:00:06.0: [1039:000a] type 01 class 0x060400
[    0.086349] pci 0000:00:06.0: PME# supported from D0 D3hot D3cold
[    0.086393] pci 0000:00:06.0: System wakeup disabled by ACPI
[    0.086493] pci 0000:00:09.0: [10ec:8169] type 00 class 0x020000
[    0.086506] pci 0000:00:09.0: reg 0x10: [io  0x1800-0x18ff]
[    0.086514] pci 0000:00:09.0: reg 0x14: [mem 0xf2004000-0xf20040ff]
[    0.086559] pci 0000:00:09.0: supports D1 D2
[    0.086561] pci 0000:00:09.0: PME# supported from D1 D2 D3hot D3cold
[    0.086665] pci 0000:00:18.0: [1022:1100] type 00 class 0x060000
[    0.086756] pci 0000:00:18.1: [1022:1101] type 00 class 0x060000
[    0.086843] pci 0000:00:18.2: [1022:1102] type 00 class 0x060000
[    0.086932] pci 0000:00:18.3: [1022:1103] type 00 class 0x060000
[    0.087089] pci 0000:01:00.0: [1002:9553] type 00 class 0x030000
[    0.087103] pci 0000:01:00.0: reg 0x10: [mem 0xe0000000-0xefffffff 64bit pref]
[    0.087114] pci 0000:01:00.0: reg 0x18: [mem 0xf2100000-0xf210ffff 64bit]
[    0.087121] pci 0000:01:00.0: reg 0x20: [io  0x2000-0x20ff]
[    0.087134] pci 0000:01:00.0: reg 0x30: [mem 0x00000000-0x0001ffff pref]
[    0.087166] pci 0000:01:00.0: supports D1 D2
[    0.087230] pci 0000:01:00.1: [1002:aa38] type 00 class 0x040300
[    0.087243] pci 0000:01:00.1: reg 0x10: [mem 0xf2110000-0xf2113fff 64bit]
[    0.087297] pci 0000:01:00.1: supports D1 D2
[    0.092016] pci 0000:00:01.0: PCI bridge to [bus 01]
[    0.092058] pci 0000:00:01.0:   bridge window [io  0x2000-0x2fff]
[    0.092062] pci 0000:00:01.0:   bridge window [mem 0xf2100000-0xf21fffff]
[    0.092066] pci 0000:00:01.0:   bridge window [mem 0xe0000000-0xefffffff pref]
[    0.092128] pci 0000:00:06.0: PCI bridge to [bus 02]
[    0.092359] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
[    0.092880] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)
[    0.093395] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)
[    0.093909] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
[    0.094423] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)
[    0.094937] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
[    0.095458] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)
[    0.095976] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
[    0.096986] vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=io+mem,locks=none
[    0.097030] vgaarb: loaded
[    0.097065] vgaarb: bridge control possible 0000:01:00.0
[    0.097165] PCI: Using ACPI for IRQ routing
[    0.097204] PCI: pci_cache_line_size set to 64 bytes
[    0.097246] e820: reserve RAM buffer [mem 0x0009e000-0x0009ffff]
[    0.097249] e820: reserve RAM buffer [mem 0xcfee0000-0xcfffffff]
[    0.097452] Switched to clocksource refined-jiffies
[    0.100654] pnp: PnP ACPI init
[    0.100718] ACPI: bus type PNP registered
[    0.101152] system 00:00: [io  0x0480-0x048f] has been reserved
[    0.101194] system 00:00: [io  0x04d0-0x04d1] has been reserved
[    0.101232] system 00:00: [io  0xf000-0xf0fe] could not be reserved
[    0.101270] system 00:00: [io  0xf200-0xf2fe] has been reserved
[    0.101308] system 00:00: [io  0x0800-0x087f] has been reserved
[    0.101346] system 00:00: [io  0xfe00] has been reserved
[    0.101384] system 00:00: [mem 0xfec00000-0xfecfffff] could not be reserved
[    0.101422] system 00:00: [mem 0xfee00000-0xfeefffff] could not be reserved
[    0.101460] system 00:00: [mem 0xff780000-0xffefffff] has been reserved
[    0.101498] system 00:00: [mem 0xd0000000-0xdfffffff] has been reserved
[    0.101537] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.101558] pnp 00:01: [dma 4]
[    0.101594] pnp 00:01: Plug and Play ACPI device, IDs PNP0200 (active)
[    0.101656] pnp 00:02: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.101712] pnp 00:03: Plug and Play ACPI device, IDs PNP0c04 (active)
[    0.101763] pnp 00:04: Plug and Play ACPI device, IDs PNP0800 (active)
[    0.101832] pnp 00:05: Plug and Play ACPI device, IDs PNP0303 (active)
[    0.101943] pnp 00:06: Plug and Play ACPI device, IDs PNP0f13 (active)
[    0.102314] pnp 00:07: [dma 3]
[    0.102380] pnp 00:07: Plug and Play ACPI device, IDs PNP0401 (active)
[    0.102599] pnp 00:08: Plug and Play ACPI device, IDs PNP0501 (active)
[    0.102832] pnp 00:09: Plug and Play ACPI device, IDs PNP0501 (active)
[    0.102839] pnp: PnP ACPI: found 10 devices
[    0.102878] ACPI: bus type PNP unregistered
[    0.109813] Switched to clocksource acpi_pm
[    0.109888] pci 0000:01:00.0: BAR 6: assigned [mem 0xf2120000-0xf213ffff pref]
[    0.109929] pci 0000:00:01.0: PCI bridge to [bus 01]
[    0.109966] pci 0000:00:01.0:   bridge window [io  0x2000-0x2fff]
[    0.110006] pci 0000:00:01.0:   bridge window [mem 0xf2100000-0xf21fffff]
[    0.110044] pci 0000:00:01.0:   bridge window [mem 0xe0000000-0xefffffff pref]
[    0.110086] pci 0000:00:06.0: PCI bridge to [bus 02]
[    0.110130] pci_bus 0000:00: resource 4 [io  0x0000-0xffff]
[    0.110133] pci_bus 0000:00: resource 5 [mem 0xd0000000-0xffffffff]
[    0.110136] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    0.110138] pci_bus 0000:00: resource 7 [mem 0x130000000-0xfcffffffff]
[    0.110142] pci_bus 0000:01: resource 0 [io  0x2000-0x2fff]
[    0.110144] pci_bus 0000:01: resource 1 [mem 0xf2100000-0xf21fffff]
[    0.110147] pci_bus 0000:01: resource 2 [mem 0xe0000000-0xefffffff pref]
[    0.110195] NET: Registered protocol family 2
[    0.110470] TCP established hash table entries: 32768 (order: 6, 262144 bytes)
[    0.110710] TCP bind hash table entries: 32768 (order: 7, 524288 bytes)
[    0.111038] TCP: Hash tables configured (established 32768 bind 32768)
[    0.111166] TCP: reno registered
[    0.111215] UDP hash table entries: 2048 (order: 4, 65536 bytes)
[    0.111303] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes)
[    0.111489] NET: Registered protocol family 1
[    1.876017] pci 0000:00:03.3: EHCI: BIOS handoff failed (BIOS bug?) 01010001
[    1.876296] pci 0000:01:00.0: Boot video device
[    1.876303] PCI: CLS 64 bytes, default 64
[    1.876376] Unpacking initramfs...
[    2.300568] Freeing initrd memory: 14524K (ffff880036392000 - ffff8800371c1000)
[    2.300712] agpgart-amd64 0000:00:00.0: AGP bridge [1039/0761]
[    2.300756] agpgart: Aperture conflicts with PCI mapping.
[    2.300793] agpgart-amd64 0000:00:00.0: aperture from AGP @ f0000000 size 32 MB
[    2.301901] agpgart-amd64 0000:00:00.0: AGP aperture is 32M @ 0xf0000000
[    2.302025] init_memory_mapping: [mem 0xf0000000-0xf1ffffff]
[    2.302062]  [mem 0xf0000000-0xf1ffffff] page 2M
[    2.302074] PCI-DMA: using GART IOMMU.
[    2.302109] PCI-DMA: Warning: Small IOMMU 16MB. Consider increasing the AGP aperture in BIOS
[    2.302151] PCI-DMA: Reserving 16MB of IOMMU area in the AGP aperture
[    2.305387] Simple Boot Flag at 0x69 set to 0x1
[    2.305502] microcode: AMD CPU family 0xf not supported
[    2.305863] futex hash table entries: 256 (order: 2, 16384 bytes)
[    2.305967] audit: initializing netlink subsys (disabled)
[    2.306031] audit: type=2000 audit(1398668250.303:1): initialized
[    2.323183] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    2.323410] VFS: Disk quotas dquot_6.5.2
[    2.323474] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    2.323592] msgmni has been set to 8050
[    2.323938] alg: No test for stdrng (krng)
[    2.324034] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    2.324126] io scheduler noop registered
[    2.324163] io scheduler deadline registered
[    2.324205] io scheduler cfq registered (default)
[    2.324385] pcieport 0000:00:06.0: irq 40 for MSI/MSI-X
[    2.324491] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    2.324550] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    2.324670] GHES: HEST is not enabled!
[    2.324795] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    2.345190] 00:08: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    2.365622] 00:09: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
[    2.366025] Linux agpgart interface v0.103
[    2.366180] i8042: PNP: PS/2 Controller [PNP0303:KEYB,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
[    2.369012] serio: i8042 KBD port at 0x60,0x64 irq 1
[    2.369057] serio: i8042 AUX port at 0x60,0x64 irq 12
[    2.369276] mousedev: PS/2 mouse device common for all mice
[    2.369373] rtc_cmos 00:02: RTC can wake from S4
[    2.369556] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
[    2.369621] rtc_cmos 00:02: alarms up to one year, y3k, 114 bytes nvram
[    2.369672] AMD IOMMUv2 driver by Joerg Roedel <joerg.roedel@amd.com>
[    2.369708] AMD IOMMUv2 functionality not available on this system
[    2.369890] TCP: cubic registered
[    2.369943] NET: Registered protocol family 10
[    2.370299] mip6: Mobile IPv6
[    2.370341] NET: Registered protocol family 17
[    2.370380] mpls_gso: MPLS GSO support
[    2.370724] registered taskstats version 1
[    2.371193] rtc_cmos 00:02: setting system clock to 2014-04-28 06:57:31 UTC (1398668251)
[    2.371300] PM: Hibernation image not present or could not be loaded.
[    2.372807] Freeing unused kernel memory: 996K (ffffffff818b1000 - ffffffff819aa000)
[    2.372854] Write protecting the kernel read-only data: 8192k
[    2.377630] Freeing unused kernel memory: 1252K (ffff8800014c7000 - ffff880001600000)
[    2.379281] Freeing unused kernel memory: 424K (ffff880001796000 - ffff880001800000)
[    2.400281] systemd-udevd[52]: starting version 204
[    2.412851] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    2.459507] ACPI: bus type USB registered
[    2.459584] usbcore: registered new interface driver usbfs
[    2.459634] usbcore: registered new interface driver hub
[    2.462619] SCSI subsystem initialized
[    2.464551] usbcore: registered new device driver usb
[    2.465231] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.465718] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    2.466023] ohci-pci: OHCI PCI platform driver
[    2.466292] ohci-pci 0000:00:03.0: OHCI PCI host controller
[    2.466339] ohci-pci 0000:00:03.0: new USB bus registered, assigned bus number 1
[    2.466431] ohci-pci 0000:00:03.0: irq 20, io mem 0xf2000000
[    2.475263] libata version 3.00 loaded.
[    2.522123] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
[    2.522168] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.522208] usb usb1: Product: OHCI PCI host controller
[    2.522245] usb usb1: Manufacturer: Linux 3.14.0 ohci_hcd
[    2.522281] usb usb1: SerialNumber: 0000:00:03.0
[    2.522511] hub 1-0:1.0: USB hub found
[    2.522560] hub 1-0:1.0: 3 ports detected
[    2.522753] pata_sis 0000:00:02.5: version 0.5.2
[    2.531336] scsi0 : pata_sis
[    2.536093] scsi1 : pata_sis
[    2.536233] ata1: PATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x1c80 irq 14
[    2.536271] ata2: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x1c88 irq 15
[    2.536704] ohci-pci 0000:00:03.1: OHCI PCI host controller
[    2.536754] ohci-pci 0000:00:03.1: new USB bus registered, assigned bus number 2
[    2.536845] ohci-pci 0000:00:03.1: irq 21, io mem 0xf2001000
[    2.554325] ehci-pci: EHCI PCI platform driver
[    2.594093] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    2.594138] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.594177] usb usb2: Product: OHCI PCI host controller
[    2.594214] usb usb2: Manufacturer: Linux 3.14.0 ohci_hcd
[    2.594250] usb usb2: SerialNumber: 0000:00:03.1
[    2.594479] hub 2-0:1.0: USB hub found
[    2.594527] hub 2-0:1.0: 3 ports detected
[    2.595145] ehci-pci 0000:00:03.3: EHCI Host Controller
[    2.595197] ehci-pci 0000:00:03.3: new USB bus registered, assigned bus number 3
[    2.596176] ehci-pci 0000:00:03.3: cache line size of 64 is not supported
[    2.596203] ehci-pci 0000:00:03.3: irq 23, io mem 0xf2003000
[    2.608068] ehci-pci 0000:00:03.3: USB 2.0 started, EHCI 1.00
[    2.608162] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002
[    2.608200] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.608240] usb usb3: Product: EHCI Host Controller
[    2.608276] usb usb3: Manufacturer: Linux 3.14.0 ehci_hcd
[    2.608313] usb usb3: SerialNumber: 0000:00:03.3
[    2.608533] hub 3-0:1.0: USB hub found
[    2.608578] hub 3-0:1.0: 8 ports detected
[    2.672146] hub 1-0:1.0: USB hub found
[    2.672199] hub 1-0:1.0: 3 ports detected
[    2.700238] ata1.00: ATAPI: HL-DT-STDVD-ROM GDR8164B, 0F08, max UDMA/33
[    2.716227] ata1.00: configured for UDMA/33
[    2.736103] hub 2-0:1.0: USB hub found
[    2.736154] hub 2-0:1.0: 3 ports detected
[    2.736559] sata_sis 0000:00:05.0: version 1.0
[    2.736779] sata_sis 0000:00:05.0: Detected SiS 182/965L chipset
[    2.736949] scsi 0:0:0:0: CD-ROM            HL-DT-ST DVD-ROM GDR8164B 0F08 PQ: 0 ANSI: 5
[    2.741397] scsi2 : sata_sis
[    2.741705] scsi3 : sata_sis
[    2.741831] ata3: SATA max UDMA/133 cmd 0x1cb0 ctl 0x1ca4 bmdma 0x1c90 irq 17
[    2.741870] ata4: SATA max UDMA/133 cmd 0x1ca8 ctl 0x1ca0 bmdma 0x1c98 irq 17
[    2.741949] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[    2.742220] r8169 0000:00:09.0 (unregistered net_device): not PCI Express
[    2.742587] r8169 0000:00:09.0 eth0: RTL8110s at 0xffffc9000092c000, 00:30:05:d3:3e:73, XID 04000000 IRQ 19
[    2.742631] r8169 0000:00:09.0 eth0: jumbo features [frames: 7152 bytes, tx checksumming: ok]
[    2.743241] ohci-pci 0000:00:03.2: OHCI PCI host controller
[    2.743294] ohci-pci 0000:00:03.2: new USB bus registered, assigned bus number 4
[    2.743385] ohci-pci 0000:00:03.2: irq 22, io mem 0xf2002000
[    2.798068] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
[    2.798112] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.798152] usb usb4: Product: OHCI PCI host controller
[    2.798188] usb usb4: Manufacturer: Linux 3.14.0 ohci_hcd
[    2.798225] usb usb4: SerialNumber: 0000:00:03.2
[    2.798617] hub 4-0:1.0: USB hub found
[    2.798672] hub 4-0:1.0: 2 ports detected
[    3.060045] ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    3.084305] ata3.00: ATA-7: WDC WD800JD-55MUA1, 10.01E01, max UDMA/133
[    3.084344] ata3.00: 156301488 sectors, multi 16: LBA48 NCQ (depth 0/32)
[    3.092283] ata3.00: configured for UDMA/133
[    3.092455] scsi 2:0:0:0: Direct-Access     ATA      WDC WD800JD-55MU 10.0 PQ: 0 ANSI: 5
[    3.320017] tsc: Refined TSC clocksource calibration: 1800.063 MHz
[    3.412037] ata4: SATA link down (SStatus 0 SControl 300)
[    3.436540] sr0: scsi3-mmc drive: 32x/32x cd/rw xa/form2 cdda tray
[    3.436585] cdrom: Uniform CD-ROM driver Revision: 3.20
[    3.437247] sr 0:0:0:0: Attached scsi CD-ROM sr0
[    3.437795] sd 2:0:0:0: [sda] 156301488 512-byte logical blocks: (80.0 GB/74.5 GiB)
[    3.437892] sd 2:0:0:0: [sda] Write Protect is off
[    3.437931] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    3.437954] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    3.442309] sr 0:0:0:0: Attached scsi generic sg0 type 5
[    3.442485] sd 2:0:0:0: Attached scsi generic sg1 type 0
[    3.455579]  sda: sda1
[    3.455977] sd 2:0:0:0: [sda] Attached SCSI disk
[    4.320080] Switched to clocksource tsc
[    5.536028] floppy0: no floppy controllers found
[    5.536079] work still pending
[    5.559188] device-mapper: uevent: version 1.0.3
[    5.559887] device-mapper: ioctl: 4.27.0-ioctl (2013-10-30) initialised: dm-devel@redhat.com
[    5.566766] random: lvm urandom read with 39 bits of entropy available
[    5.585082] bio: create slab <bio-1> at 1
[    5.867330] PM: Starting manual resume from disk
[    5.867379] PM: Hibernation image partition 254:1 present
[    5.867380] PM: Looking for hibernation image.
[    5.867632] PM: Image not found (code -22)
[    5.867636] PM: Hibernation image not present or could not be loaded.
[    5.885318] EXT4-fs (dm-0): mounting ext3 file system using the ext4 subsystem
[    5.926062] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
[    7.436776] random: nonblocking pool is initialized
[    9.484243] systemd-udevd[339]: starting version 204
[   11.847543] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input2
[   11.847592] ACPI: Power Button [PWRB]
[   11.849721] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
[   11.849769] ACPI: Power Button [PWRF]
[   12.055559] parport_pc 00:07: reported by Plug and Play ACPI
[   12.055657] parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE]
[   12.495906] input: PC Speaker as /devices/platform/pcspkr/input/input4
[   12.527830] EDAC MC: Ver: 3.0.0
[   12.531982] MCE: In-kernel MCE decoding enabled.
[   12.794771] powernow-k8: fid 0xa (1800 MHz), vid 0x6
[   12.794814] powernow-k8: fid 0x2 (1000 MHz), vid 0x12
[   12.794894] powernow-k8: Found 1 AMD Sempron(tm) Processor 3000+ (1 cpu cores) (version 2.20.00)
[   12.859656] AMD64 EDAC driver v3.4.0
[   12.859733] EDAC amd64: DRAM ECC enabled.
[   12.859772] EDAC amd64: K8 revE or earlier detected (node 0).
[   12.859854] EDAC amd64: CS0: Double data rate SDRAM
[   12.859890] EDAC amd64: CS1: Double data rate SDRAM
[   12.859925] EDAC amd64: CS2: Double data rate SDRAM
[   12.860213] EDAC MC0: Giving out device to module amd64_edac controller K8: DEV 0000:00:18.2 (INTERRUPT)
[   12.860301] EDAC PCI0: Giving out device to module amd64_edac controller EDAC PCI controller: DEV 0000:00:18.2 (POLLED)
[   13.008258] tsc: Marking TSC unstable due to cpufreq changes
[   13.008481] Switched to clocksource acpi_pm
[   13.300867] [drm] Initialized drm 1.1.0 20060810
[   13.308032] intel8x0_measure_ac97_clock: measured 55148 usecs (2653 samples)
[   13.308082] intel8x0: clocking to 48000
[   13.389668] input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8042/serio1/input/input5
[   13.688636] hda-intel 0000:01:00.1: Handle VGA-switcheroo audio client
[   13.688770] snd_hda_intel 0000:01:00.1: irq 41 for MSI/MSI-X
[   13.691171] Uhhuh. NMI received for unknown reason 31 on CPU 0.
[   13.691220] Do you have a strange power saving mode enabled?
[   13.691261] Dazed and confused, but trying to continue
[   14.696081] hda-intel 0000:01:00.1: Codec #0 probe error; disabling it...
[   14.697373] [drm] radeon kernel modesetting enabled.
[   14.698209] [drm] initializing kernel modesetting (RV710 0x1002:0x9553 0x174B:0x3092).
[   14.698289] [drm] register mmio base: 0xF2100000
[   14.698330] [drm] register mmio size: 65536
[   14.698406] Uhhuh. NMI received for unknown reason 31 on CPU 0.
[   14.698447] Do you have a strange power saving mode enabled?
[   14.698487] Dazed and confused, but trying to continue
[   14.704144] ATOM BIOS: 113
[   14.704267] radeon 0000:01:00.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used)
[   14.704315] radeon 0000:01:00.0: GTT: 1024M 0x0000000020000000 - 0x000000005FFFFFFF
[   14.704361] [drm] Detected VRAM RAM=512M, BAR=256M
[   14.704402] [drm] RAM width 64bits DDR
[   14.704551] [TTM] Zone  kernel: Available graphics memory: 2062284 kiB
[   14.704594] [TTM] Initializing pool allocator
[   14.704642] [TTM] Initializing DMA pool allocator
[   14.704724] [drm] radeon: 512M of VRAM memory ready
[   14.704766] [drm] radeon: 1024M of GTT memory ready.
[   14.704830] [drm] Loading RV710 Microcode
[   15.006859] [drm] Internal thermal controller with fan control
[   15.008579] [drm] radeon: dpm initialized
[   15.058523] [drm] GART: num cpu pages 262144, num gpu pages 262144
[   15.071087] [drm] PCIE GART of 1024M enabled (table at 0x000000000025D000).
[   15.071196] radeon 0000:01:00.0: WB enabled
[   15.071242] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000020000c00 and cpu addr 0xffff8800cba86c00
[   15.071291] radeon 0000:01:00.0: fence driver on ring 3 use gpu addr 0x0000000020000c0c and cpu addr 0xffff8800cba86c0c
[   15.072315] radeon 0000:01:00.0: fence driver on ring 5 use gpu addr 0x000000000005c598 and cpu addr 0xffffc90000a1c598
[   15.072375] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[   15.072416] [drm] Driver supports precise vblank timestamp query.
[   15.072495] radeon 0000:01:00.0: irq 42 for MSI/MSI-X
[   15.072518] radeon 0000:01:00.0: radeon: using MSI.
[   15.072594] [drm] radeon: irq initialized.
[   15.121095] [drm] ring test on 0 succeeded in 1 usecs
[   15.121204] [drm] ring test on 3 succeeded in 1 usecs
[   15.316350] floppy0: no floppy controllers found
[   15.316411] work still pending
[   15.318285] [drm] ring test on 5 succeeded in 1 usecs
[   15.318338] [drm] UVD initialized successfully.
[   15.318644] [drm] ib test on ring 0 succeeded in 0 usecs
[   15.318707] [drm] ib test on ring 3 succeeded in 0 usecs
[   15.479327] Uhhuh. NMI received for unknown reason 21 on CPU 0.
[   15.479377] Do you have a strange power saving mode enabled?
[   15.479417] Dazed and confused, but trying to continue
[   15.485566] [drm] ib test on ring 5 succeeded
[   15.486020] [drm] Radeon Display Connectors
[   15.486060] [drm] Connector 0:
[   15.486095] [drm]   DVI-I-1
[   15.486958] [drm]   HPD1
[   15.486994] [drm]   DDC: 0x7f10 0x7f10 0x7f14 0x7f14 0x7f18 0x7f18 0x7f1c 0x7f1c
[   15.487032] [drm]   Encoders:
[   15.487067] [drm]     CRT1: INTERNAL_KLDSCP_DAC1
[   15.487103] [drm]     DFP2: INTERNAL_UNIPHY2
[   15.487138] [drm] Connector 1:
[   15.487173] [drm]   HDMI-A-1
[   15.487207] [drm]   HPD4
[   15.487243] [drm]   DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c
[   15.487281] [drm]   Encoders:
[   15.487316] [drm]     DFP1: INTERNAL_UNIPHY
[   15.487351] [drm] Connector 2:
[   15.487386] [drm]   VGA-1
[   15.487422] [drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
[   15.487460] [drm]   Encoders:
[   15.487495] [drm]     CRT2: INTERNAL_KLDSCP_DAC2
[   15.558258] [drm] fb mappable at 0xE045E000
[   15.558300] [drm] vram apper at 0xE0000000
[   15.558335] [drm] size 9216000
[   15.558370] [drm] fb depth is 24
[   15.558405] [drm]    pitch is 7680
[   15.558638] fbcon: radeondrmfb (fb0) is primary device
[   15.663729] Console: switching to colour frame buffer device 180x56
[   15.671446] radeon 0000:01:00.0: fb0: radeondrmfb frame buffer device
[   15.671505] radeon 0000:01:00.0: registered panic notifier
[   15.671596] [drm] Initialized radeon 2.37.0 20080528 for 0000:01:00.0 on minor 0
[   18.940778] EXT4-fs (dm-0): re-mounted. Opts: (null)
[   19.249142] EXT4-fs (dm-0): re-mounted. Opts: errors=remount-ro
[   19.728055] hda-intel 0000:01:00.1: no codecs initialized
[   20.093351] lp0: using parport0 (interrupt-driven).
[   20.152786] ppdev: user-space parallel port driver
[   20.337814] loop: module loaded
[   20.596144] fuse init (API version 7.22)
[   20.928341] Adding 4194300k swap on /dev/mapper/vg0-boole--swap.  Priority:-1 extents:1 across:4194300k 
[   21.730349] EXT4-fs (dm-2): mounting ext3 file system using the ext4 subsystem
[   21.740918] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
[   23.233000] Bridge firewalling registered
[   23.279480] device eth0 entered promiscuous mode
[   23.304652] r8169 0000:00:09.0 eth0: link down
[   23.308281] r8169 0000:00:09.0 eth0: link down
[   23.311927] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   23.320170] IPv6: ADDRCONF(NETDEV_UP): br0: link is not ready
[   24.849581] r8169 0000:00:09.0 eth0: link up
[   24.853246] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   24.857312] br0: port 1(eth0) entered forwarding state
[   24.860949] br0: port 1(eth0) entered forwarding state
[   24.864660] IPv6: ADDRCONF(NETDEV_CHANGE): br0: link becomes ready
[   28.118954] RPC: Registered named UNIX socket transport module.
[   28.122728] RPC: Registered udp transport module.
[   28.126508] RPC: Registered tcp transport module.
[   28.130226] RPC: Registered tcp NFSv4.1 backchannel transport module.
[   28.219068] FS-Cache: Loaded
[   28.414277] FS-Cache: Netfs 'nfs' registered for caching
[   28.617823] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[   28.912813] Key type dns_resolver registered
[   29.006074] NFS: Registering the id_resolver key type
[   29.009837] Key type id_resolver registered
[   29.013497] Key type id_legacy registered
[   39.904028] br0: port 1(eth0) entered forwarding state
[   51.466888] Bluetooth: Core ver 2.18
[   51.470835] NET: Registered protocol family 31
[   51.474469] Bluetooth: HCI device and connection manager initialized
[   51.478720] Bluetooth: HCI socket layer initialized
[   51.482622] Bluetooth: L2CAP socket layer initialized
[   51.487198] Bluetooth: SCO socket layer initialized
[   51.584588] Bluetooth: RFCOMM TTY layer initialized
[   51.588558] Bluetooth: RFCOMM socket layer initialized
[   51.592337] Bluetooth: RFCOMM ver 1.11
[   51.677716] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   51.681263] Bluetooth: BNEP filters: protocol multicast
[   51.685084] Bluetooth: BNEP socket layer initialized
[   68.647926] systemd-logind[2925]: New seat seat0.
[   68.664737] systemd-logind[2925]: Watching system buttons on /dev/input/event2 (Power Button)
[   68.664940] systemd-logind[2925]: Watching system buttons on /dev/input/event1 (Power Button)
[   68.667194] systemd-logind[2925]: New session c1 of user lightdm.
[   68.667479] systemd-logind[2925]: Linked /tmp/.X11-unix/X0 to /run/user/108/X11-display.
[   95.553342] systemd-logind[2925]: New session c2 of user thomas.

[-- Attachment #2: Type: application/pgp-signature, Size: 489 bytes --]

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2014-04-27 19:55           ` Jerome Glisse
                             ` (2 preceding siblings ...)
  (?)
@ 2014-04-28  8:09           ` Thomas Schwinge
  2014-06-16  7:11             ` Thomas Schwinge
  -1 siblings, 1 reply; 82+ messages in thread
From: Thomas Schwinge @ 2014-04-28  8:09 UTC (permalink / raw)
  To: Jerome Glisse
  Cc: Bjorn Helgaas, linux-pci, Johannes Weiner, Mel Gorman,
	Rik van Riel, Andrea Arcangeli, Zlatko Calusic, Minchan Kim,
	linux-mm, linux-kernel, Andrew Morton, Alex Deucher,
	Christian König, dri-devel

[-- Attachment #1: Type: text/plain, Size: 1219 bytes --]

Hi!

On Sun, 27 Apr 2014 15:55:29 -0400, Jerome Glisse <j.glisse@gmail.com> wrote:
> If my ugly patch works does this quirk also work ?

Unfortunately they both don't; see my other email,
<http://news.gmane.org/find-root.php?message_id=%3C87sioxq3rx.fsf%40schwinge.name%3E>.


Also, the quirk patch resulted in a NULL pointer dereference in
pci_find_ht_capability+0x4/0x30, which I hacked around as follows:

diff --git drivers/pci/quirks.c drivers/pci/quirks.c
index f025867..33aaad2 100644
--- drivers/pci/quirks.c
+++ drivers/pci/quirks.c
@@ -2452,6 +2452,8 @@ u64 pci_ht_quirk_dma_32bit_only(struct pci_dev *dev, u64 mask)
 		struct pci_dev *bridge = bus->self;
 		int pos;
 
+		if (!bridge)
+			goto skip;
 		pos = pci_find_ht_capability(bridge, HT_CAPTYPE_SLAVE);
 		if (pos) {
 			int ctrl_off;
@@ -2472,6 +2474,7 @@ u64 pci_ht_quirk_dma_32bit_only(struct pci_dev *dev, u64 mask)
 				return 0xffffffff;
 			}
 		}
+	skip:
 		bus = bus->parent;
 	} while (bus);
 	return mask;

If needed, I can try to capture more data, but someone who has knowledge
of PCI bus architecture and Linux kernel code (so, not me), might
probably already see what's wrong.


Grüße,
 Thomas

[-- Attachment #2: Type: application/pgp-signature, Size: 489 bytes --]

^ permalink raw reply related	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2014-04-28  8:03             ` Thomas Schwinge
@ 2014-04-28  9:09               ` Thomas Schwinge
  0 siblings, 0 replies; 82+ messages in thread
From: Thomas Schwinge @ 2014-04-28  9:09 UTC (permalink / raw)
  To: Jerome Glisse
  Cc: Mel Gorman, Rik van Riel, Andrea Arcangeli, Zlatko Calusic,
	Minchan Kim, linux-mm, linux-kernel, Andrew Morton, Alex Deucher,
	Christian König, dri-devel, Johannes Weiner

[-- Attachment #1: Type: text/plain, Size: 3560 bytes --]

Hi!

On Mon, 28 Apr 2014 10:03:46 +0200, I wrote:
> On Fri, 25 Apr 2014 19:03:22 -0400, Jerome Glisse <j.glisse@gmail.com> wrote:
> > On Fri, Apr 25, 2014 at 05:50:57PM -0400, Jerome Glisse wrote:
> > > On Fri, Apr 25, 2014 at 05:47:48PM -0400, Jerome Glisse wrote:
> > > > On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> > > > > On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > > > > > On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner <hannes@cmpxchg.org> wrote:
> > > > > > > Each zone that holds userspace pages of one workload must be aged at a
> > > > > > > speed proportional to the zone size.  [...]
> > > > > > 
> > > > > > > Fix this with a very simple round robin allocator.  [...]
> > > > > > 
> > > > > > This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> > > > > > commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > > > > > 
> > > > > > I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> > > > > > and it started to exhibit "strange" issues, which I then bisected to this
> > > > > > patch.  I'm not saying that the patch is faulty, as it seems to be
> > > > > > working fine for everyone else, so I rather assume that something in a
> > > > > > (vastly?) different corner of the kernel (or my hardware?) is broken.
> > > > > > ;-)
> > > > > > 
> > > > > > The issue is that when X.org/lightdm starts up, there are "garbled"
> > > > > > section on the screen, for example, rectangular boxes that are just black
> > > > > > or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> > > > > > of characters; but not all characters) are displayed as rectangular gray
> > > > > > or black boxes, and/or icons in a GNOME session are not displayed
> > > > > > properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > > > > > a Linux console, I can use that one fine.  Switching back to X, in the
> > > > > > majority of all cases, the screen will be completely black, but with the
> > > > > > mouse cursor still rendered properly (done in hardware, I assume).
> > > > > > 
> > > > > > Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for example on
> > > > > > top of v3.12, and everything is back to normal.  The problem also
> > > > > > persists with a v3.14 kernel that I just built.

> > > > My guess is that the pcie bridge can only remap dma page with 32bit dma
> > > > mask while the gpu is fine with 40bit dma mask. I always thought that the
> > > > pcie/pci code did take care of such thing for us.
> > > 
> > > Forgot to attach patch to test my theory. Does the attached patch fix
> > > the issue ?
> 
> Unfortunately it does not.  :-/

Ha, the following seems to do it: additionally to dma_bits (your patch),
I'm also overriding need_dma32 for later use in
drivers/gpu/drm/ttm/ttm_bo.c:ttm_bo_add_ttm, I assume.  With that hack
applied, I have now rebooted a v3.14 build a few times, and so far things
"look" fine.

diff --git drivers/gpu/drm/radeon/radeon_device.c drivers/gpu/drm/radeon/radeon_device.c
index 044bc98..90baf2f 100644
--- drivers/gpu/drm/radeon/radeon_device.c
+++ drivers/gpu/drm/radeon/radeon_device.c
@@ -1243,6 +1243,8 @@ int radeon_device_init(struct radeon_device *rdev,
 		rdev->need_dma32 = true;
 
 	dma_bits = rdev->need_dma32 ? 32 : 40;
+	dma_bits = 32;
+	rdev->need_dma32 = true;
 	r = pci_set_dma_mask(rdev->pdev, DMA_BIT_MASK(dma_bits));
 	if (r) {
 		rdev->need_dma32 = true;


Grüße,
 Thomas

[-- Attachment #2: Type: application/pgp-signature, Size: 489 bytes --]

^ permalink raw reply related	[flat|nested] 82+ messages in thread

* RE: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2014-04-28  7:30             ` Christian König
@ 2014-04-28 12:51               ` Deucher, Alexander
  -1 siblings, 0 replies; 82+ messages in thread
From: Deucher, Alexander @ 2014-04-28 12:51 UTC (permalink / raw)
  To: Koenig, Christian, Jerome Glisse, Thomas Schwinge
  Cc: Bjorn Helgaas, linux-pci, Johannes Weiner, Mel Gorman,
	Rik van Riel, Andrea Arcangeli, Zlatko Calusic, Minchan Kim,
	linux-mm, linux-kernel, Andrew Morton, dri-devel

> -----Original Message-----
> From: Koenig, Christian
> Sent: Monday, April 28, 2014 3:30 AM
> To: Jerome Glisse; Thomas Schwinge
> Cc: Bjorn Helgaas; linux-pci@vger.kernel.org; Johannes Weiner; Mel Gorman;
> Rik van Riel; Andrea Arcangeli; Zlatko Calusic; Minchan Kim; linux-
> mm@kvack.org; linux-kernel@vger.kernel.org; Andrew Morton; Deucher,
> Alexander; dri-devel@lists.freedesktop.org
> Subject: Re: radeon: screen garbled after page allocator change, was: Re:
> [patch v2 3/3] mm: page_alloc: fair zone allocator policy
> 
> > +	/* We are living in a monstruous world in which you can have the pci
> > +	 * root complex behind an hypertransport link which can not address
> > +	 * anything above 32bit (well hypertransport specification says 40bits
> > +	 * but hardware such as SIS761 only support 32bits).
> That looks more like a problem with this specific chipset rather than
> something that needs a general solution like this.
> 
> Maybe we should rather add the PCI-ID(s) of the thing to some kind of
> quirks table for now so that the patch isn't so invasive and we can CC
> stable as well?

IIRC, there was someone on IRC with a similar problem with a similar SiS chipset a while back.  These SiS chipsets seem to be generally problematic.

Alex

> 
> Just a thought,
> Christian.
> 
> Am 27.04.2014 21:55, schrieb Jerome Glisse:
> > On Sat, Apr 26, 2014 at 11:31:11PM -0400, Jerome Glisse wrote:
> >> On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> >>> Hi Thomas,
> >>>
> >>> On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> >>>> Hi!
> >>>>
> >>>> On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner
> <hannes@cmpxchg.org> wrote:
> >>>>> Each zone that holds userspace pages of one workload must be aged
> at a
> >>>>> speed proportional to the zone size.  [...]
> >>>>> Fix this with a very simple round robin allocator.  [...]
> >>>> This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> >>>> commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> >>>>
> >>>> I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> >>>> and it started to exhibit "strange" issues, which I then bisected to this
> >>>> patch.  I'm not saying that the patch is faulty, as it seems to be
> >>>> working fine for everyone else, so I rather assume that something in a
> >>>> (vastly?) different corner of the kernel (or my hardware?) is broken.
> >>>> ;-)
> >>>>
> >>>> The issue is that when X.org/lightdm starts up, there are "garbled"
> >>>> section on the screen, for example, rectangular boxes that are just
> black
> >>>> or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> >>>> of characters; but not all characters) are displayed as rectangular gray
> >>>> or black boxes, and/or icons in a GNOME session are not displayed
> >>>> properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> >>>> a Linux console, I can use that one fine.  Switching back to X, in the
> >>>> majority of all cases, the screen will be completely black, but with the
> >>>> mouse cursor still rendered properly (done in hardware, I assume).
> >>>>
> >>>> Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for
> example on
> >>>> top of v3.12, and everything is back to normal.  The problem also
> >>>> persists with a v3.14 kernel that I just built.
> >>>>
> >>>> I will try to figure out what's going on, but will gladly take any
> >>>> pointers, or suggestions about how to tackle such a problem.
> >>>>
> >>>> The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1,
> CPU
> >>>> AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> >>>> using that; instead I put in a Sapphire Radeon HD 4350 card.
> >>> I went over this code change repeatedly but I could not see anything
> >>> directly that would explain it.  However, this patch DOES change the
> >>> way allocations are placed (while still respecting zone specifiers
> >>> like __GFP_DMA etc.) and so it's possible that they unearthed a
> >>> corruption, or a wrongly set dma mask in the drivers.
> >>>
> >>> Ccing the radeon driver guys.  Full quote follows.
> >>>
> >>>>      $ cat < /proc/cpuinfo
> >>>>      processor       : 0
> >>>>      vendor_id       : AuthenticAMD
> >>>>      cpu family      : 15
> >>>>      model           : 47
> >>>>      model name      : AMD Sempron(tm) Processor 3000+
> >>>>      stepping        : 2
> >>>>      cpu MHz         : 1000.000
> >>>>      cache size      : 128 KB
> >>>>      physical id     : 0
> >>>>      siblings        : 1
> >>>>      core id         : 0
> >>>>      cpu cores       : 1
> >>>>      apicid          : 0
> >>>>      initial apicid  : 0
> >>>>      fpu             : yes
> >>>>      fpu_exception   : yes
> >>>>      cpuid level     : 1
> >>>>      wp              : yes
> >>>>      flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
> mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm
> 3dnowext 3dnow rep_good nopl pni lahf_lm
> >>>>      bogomips        : 2000.20
> >>>>      TLB size        : 1024 4K pages
> >>>>      clflush size    : 64
> >>>>      cache_alignment : 64
> >>>>      address sizes   : 40 bits physical, 48 bits virtual
> >>>>      power management: ts fid vid ttp tm stc
> >>>>      $ sudo lspci -nn -k -vv
> >>>>      00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761
> Host [1039:0761] (rev 01)
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard
> [1734:1099]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >>>>              Latency: 64
> >>>>              Region 0: Memory at f0000000 (32-bit, non-prefetchable)
> [size=32M]
> >>>>              Capabilities: [a0] AGP version 3.0
> >>>>                      Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64-
> HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> >>>>                      Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit-
> FW- Rate=<none>
> >>>>              Capabilities: [d0] HyperTransport: Slave or Primary Interface
> >>>>                      Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> >>>>                      Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO-
> <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >>>>                      Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut-
> LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >>>>                      Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+
> <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >>>>                      Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut-
> LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> >>>>                      Revision ID: 1.05
> >>>>                      Link Frequency 0: 800MHz
> >>>>                      Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> >>>>                      Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+
> 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> >>>>                      Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+
> UIDRD-
> >>>>                      Link Frequency 1: 200MHz
> >>>>                      Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> >>>>                      Link Frequency Capability 1: 200MHz- 300MHz- 400MHz-
> 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >>>>                      Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE-
> SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> >>>>                      Prefetchable memory behind bridge Upper: 00-00
> >>>>                      Bus Number: 00
> >>>>              Capabilities: [f0] HyperTransport: Interrupt Discovery and
> Configuration
> >>>>              Capabilities: [5c] HyperTransport: Revision ID: 1.05
> >>>>              Kernel driver in use: agpgart-amd64
> >>>>
> >>>>      00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI
> bridge [1039:0004] (prog-if 00 [Normal decode])
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 0, Cache Line Size: 64 bytes
> >>>>              Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> >>>>              I/O behind bridge: 00002000-00002fff
> >>>>              Memory behind bridge: f2100000-f21fffff
> >>>>              Prefetchable memory behind bridge: e0000000-efffffff
> >>>>              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort+ <SERR- <PERR-
> >>>>              BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset-
> FastB2B-
> >>>>                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >>>>              Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0
> >>>>                              ExtTag+ RBE-
> >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+
> TransPend-
> >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit
> Latency L0s <1us, L1 <2us
> >>>>                              ClockPM- Surprise- LLActRep+ BwNot-
> >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
> DLActive+ BWMgmt- ABWMgmt-
> >>>>                      SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
> Surprise-
> >>>>                              Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> >>>>                      SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
> HPIrq- LinkChg-
> >>>>                              Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >>>>                      SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+
> Interlock-
> >>>>                              Changed: MRL- PresDet- LinkState-
> >>>>                      RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna-
> CRSVisible-
> >>>>                      RootCap: CRSVisible-
> >>>>                      RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >>>>              Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> >>>>              Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> >>>>                      Address: 00000000  Data: 0000
> >>>>              Capabilities: [f4] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-
> ,D2-,D3hot+,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Kernel driver in use: pcieport
> >>>>
> >>>>      00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965
> [MuTIOL Media IO] [1039:0965] (rev 48)
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >>>>              Latency: 0
> >>>>
> >>>>      00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE
> Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard
> [1734:1095]
> >>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 128
> >>>>              Interrupt: pin ? routed to IRQ 16
> >>>>              Region 0: I/O ports at 01f0 [size=8]
> >>>>              Region 1: I/O ports at 03f4
> >>>>              Region 2: I/O ports at 0170 [size=8]
> >>>>              Region 3: I/O ports at 0374
> >>>>              Region 4: I/O ports at 1c80 [size=16]
> >>>>              Capabilities: [58] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-
> ,D2-,D3hot-,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Kernel driver in use: pata_sis
> >>>>
> >>>>      00:02.7 Multimedia audio controller [0401]: Silicon Integrated
> Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> >>>>              Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> >>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 173 (13000ns min, 2750ns max)
> >>>>              Interrupt: pin C routed to IRQ 18
> >>>>              Region 0: I/O ports at 1400 [size=256]
> >>>>              Region 1: I/O ports at 1000 [size=128]
> >>>>              Capabilities: [48] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-
> ,D2-,D3hot+,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Kernel driver in use: snd_intel8x0
> >>>>
> >>>>      00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1
> Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard
> [1734:1095]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 64 (20000ns max)
> >>>>              Interrupt: pin A routed to IRQ 20
> >>>>              Region 0: Memory at f2000000 (32-bit, non-prefetchable)
> [size=4K]
> >>>>              Kernel driver in use: ohci-pci
> >>>>
> >>>>      00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1
> Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard
> [1734:1095]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 64 (20000ns max)
> >>>>              Interrupt: pin B routed to IRQ 21
> >>>>              Region 0: Memory at f2001000 (32-bit, non-prefetchable)
> [size=4K]
> >>>>              Kernel driver in use: ohci-pci
> >>>>
> >>>>      00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1
> Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard
> [1734:1095]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 64 (20000ns max)
> >>>>              Interrupt: pin C routed to IRQ 22
> >>>>              Region 0: Memory at f2002000 (32-bit, non-prefetchable)
> [size=4K]
> >>>>              Kernel driver in use: ohci-pci
> >>>>
> >>>>      00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0
> Controller [1039:7002] (prog-if 20 [EHCI])
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >>>>              Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 64 (20000ns max)
> >>>>              Interrupt: pin D routed to IRQ 23
> >>>>              Region 0: Memory at f2003000 (32-bit, non-prefetchable)
> [size=4K]
> >>>>              Capabilities: [50] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA
> PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Kernel driver in use: ehci-pci
> >>>>
> >>>>      00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182
> SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP
> PriO])
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 64
> >>>>              Interrupt: pin A routed to IRQ 17
> >>>>              Region 0: I/O ports at 1cb0 [size=8]
> >>>>              Region 1: I/O ports at 1ca4 [size=4]
> >>>>              Region 2: I/O ports at 1ca8 [size=8]
> >>>>              Region 3: I/O ports at 1ca0 [size=4]
> >>>>              Region 4: I/O ports at 1c90 [size=16]
> >>>>              Region 5: I/O ports at 1c00 [size=128]
> >>>>              Capabilities: [58] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-
> ,D2-,D3hot-,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Kernel driver in use: sata_sis
> >>>>
> >>>>      00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI
> bridge [1039:000a] (prog-if 00 [Normal decode])
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 0, Cache Line Size: 64 bytes
> >>>>              Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> >>>>              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- <SERR- <PERR-
> >>>>              BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> >>>>                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >>>>              Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS]
> Device [1039:0000]
> >>>>              Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> >>>>                      Address: fee0100c  Data: 4181
> >>>>              Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0
> >>>>                              ExtTag+ RBE-
> >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
> TransPend-
> >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit
> Latency L0s <1us, L1 <2us
> >>>>                              ClockPM- Surprise- LLActRep- BwNot-
> >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >>>>                      LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+
> DLActive- BWMgmt- ABWMgmt-
> >>>>                      SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
> Surprise-
> >>>>                              Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> >>>>                      SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
> HPIrq- LinkChg-
> >>>>                              Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >>>>                      SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+
> Interlock-
> >>>>                              Changed: MRL- PresDet- LinkState-
> >>>>                      RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna-
> CRSVisible-
> >>>>                      RootCap: CRSVisible-
> >>>>                      RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >>>>              Capabilities: [f4] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-
> ,D2-,D3hot+,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Capabilities: [100 v1] Virtual Channel
> >>>>                      Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> >>>>                      Arb:    Fixed- WRR32- WRR64- WRR128-
> >>>>                      Ctrl:   ArbSelect=Fixed
> >>>>                      Status: InProgress-
> >>>>                      VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> >>>>                              Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128-
> WRR256-
> >>>>                              Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> >>>>                              Status: NegoPending- InProgress-
> >>>>              Capabilities: [130 v1] Advanced Error Reporting
> >>>>                      UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
> UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >>>>                      UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
> UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >>>>                      UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt-
> UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> >>>>                      CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> NonFatalErr-
> >>>>                      CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> NonFatalErr-
> >>>>                      AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap-
> ChkEn-
> >>>>              Kernel driver in use: pcieport
> >>>>
> >>>>      00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> >>>>              Interrupt: pin A routed to IRQ 19
> >>>>              Region 0: I/O ports at 1800 [size=256]
> >>>>              Region 1: Memory at f2004000 (32-bit, non-prefetchable)
> [size=256]
> >>>>              Capabilities: [dc] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-
> ,D1+,D2+,D3hot+,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Kernel driver in use: r8169
> >>>>
> >>>>      00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Capabilities: [80] HyperTransport: Host or Secondary Interface
> >>>>                      Command: WarmRst+ DblEnd- DevNum=0 ChainSide-
> HostHide+ Slave- <EOCErr- DUL-
> >>>>                      Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO-
> <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >>>>                      Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut-
> LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >>>>                      Revision ID: 1.02
> >>>>                      Link Frequency: 800MHz
> >>>>                      Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> >>>>                      Link Frequency Capability: 200MHz+ 300MHz- 400MHz+
> 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >>>>                      Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA-
> UIDRD- ExtRS- UCnfE-
> >>>>
> >>>>      00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> [Athlon64/Opteron] Address Map [1022:1101]
> >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>
> >>>>      00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> [Athlon64/Opteron] DRAM Controller [1022:1102]
> >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Kernel driver in use: amd64_edac
> >>>>
> >>>>      00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Kernel driver in use: k8temp
> >>>>
> >>>>      01:00.0 VGA compatible controller [0300]: Advanced Micro Devices,
> Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v]
> [1002:9553] (prog-if 00 [VGA controller])
> >>>>              Subsystem: PC Partner Limited / Sapphire Technology Device
> [174b:3092]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >>>>              Latency: 0, Cache Line Size: 64 bytes
> >>>>              Interrupt: pin A routed to IRQ 42
> >>>>              Region 0: Memory at e0000000 (64-bit, prefetchable)
> [size=256M]
> >>>>              Region 2: Memory at f2100000 (64-bit, non-prefetchable)
> [size=64K]
> >>>>              Region 4: I/O ports at 2000 [size=256]
> >>>>              [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> >>>>              Capabilities: [50] Power Management version 3
> >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-
> ,D2-,D3hot-,D3cold-)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
> <4us, L1 unlimited
> >>>>                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
> TransPend-
> >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit
> Latency L0s <64ns, L1 <1us
> >>>>                              ClockPM- Surprise- LLActRep- BwNot-
> >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
> DLActive- BWMgmt- ABWMgmt-
> >>>>                      DevCap2: Completion Timeout: Not Supported, TimeoutDis-,
> LTR-, OBFF Not Supported
> >>>>                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-,
> LTR-, OBFF Disabled
> >>>>                      LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance-
> SpeedDis-
> >>>>                               Transmit Margin: Normal Operating Range,
> EnterModifiedCompliance- ComplianceSOS-
> >>>>                               Compliance De-emphasis: -6dB
> >>>>                      LnkSta2: Current De-emphasis Level: -6dB,
> EqualizationComplete-, EqualizationPhase1-
> >>>>                               EqualizationPhase2-, EqualizationPhase3-,
> LinkEqualizationRequest-
> >>>>              Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >>>>                      Address: 00000000fee0100c  Data: 41e1
> >>>>              Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1
> Len=010 <?>
> >>>>              Kernel driver in use: radeon
> >>>>
> >>>>      01:00.1 Audio device [0403]: Advanced Micro Devices, Inc.
> [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> >>>>              Subsystem: PC Partner Limited / Sapphire Technology Device
> [174b:aa38]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 0, Cache Line Size: 64 bytes
> >>>>              Interrupt: pin B routed to IRQ 41
> >>>>              Region 0: Memory at f2110000 (64-bit, non-prefetchable)
> [size=16K]
> >>>>              Capabilities: [50] Power Management version 3
> >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-
> ,D2-,D3hot-,D3cold-)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
> <4us, L1 unlimited
> >>>>                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
> TransPend-
> >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit
> Latency L0s <64ns, L1 <1us
> >>>>                              ClockPM- Surprise- LLActRep- BwNot-
> >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
> DLActive- BWMgmt- ABWMgmt-
> >>>>                      DevCap2: Completion Timeout: Not Supported, TimeoutDis-,
> LTR-, OBFF Not Supported
> >>>>                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-,
> LTR-, OBFF Disabled
> >>>>                      LnkSta2: Current De-emphasis Level: -6dB,
> EqualizationComplete-, EqualizationPhase1-
> >>>>                               EqualizationPhase2-, EqualizationPhase3-,
> LinkEqualizationRequest-
> >>>>              Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >>>>                      Address: 00000000fee0100c  Data: 41d1
> >>>>              Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1
> Len=010 <?>
> >>>>              Kernel driver in use: snd_hda_intel
> >>>>
> >>>>
> >>>> Grüße,
> >>>>   Thomas
> >> Thomas can you provide output of lspci -t
> >>
> >> Also did you had a chance to test my ugly patch ?
> >>
> >> Cheers,
> >> Jérôme
> > If my ugly patch works does this quirk also work ?
> >


^ permalink raw reply	[flat|nested] 82+ messages in thread

* RE: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-28 12:51               ` Deucher, Alexander
  0 siblings, 0 replies; 82+ messages in thread
From: Deucher, Alexander @ 2014-04-28 12:51 UTC (permalink / raw)
  To: Koenig, Christian, Jerome Glisse, Thomas Schwinge
  Cc: Bjorn Helgaas, linux-pci, Johannes Weiner, Mel Gorman,
	Rik van Riel, Andrea Arcangeli, Zlatko Calusic, Minchan Kim,
	linux-mm, linux-kernel, Andrew Morton, dri-devel

> -----Original Message-----
> From: Koenig, Christian
> Sent: Monday, April 28, 2014 3:30 AM
> To: Jerome Glisse; Thomas Schwinge
> Cc: Bjorn Helgaas; linux-pci@vger.kernel.org; Johannes Weiner; Mel Gorman;
> Rik van Riel; Andrea Arcangeli; Zlatko Calusic; Minchan Kim; linux-
> mm@kvack.org; linux-kernel@vger.kernel.org; Andrew Morton; Deucher,
> Alexander; dri-devel@lists.freedesktop.org
> Subject: Re: radeon: screen garbled after page allocator change, was: Re:
> [patch v2 3/3] mm: page_alloc: fair zone allocator policy
> 
> > +	/* We are living in a monstruous world in which you can have the pci
> > +	 * root complex behind an hypertransport link which can not address
> > +	 * anything above 32bit (well hypertransport specification says 40bits
> > +	 * but hardware such as SIS761 only support 32bits).
> That looks more like a problem with this specific chipset rather than
> something that needs a general solution like this.
> 
> Maybe we should rather add the PCI-ID(s) of the thing to some kind of
> quirks table for now so that the patch isn't so invasive and we can CC
> stable as well?

IIRC, there was someone on IRC with a similar problem with a similar SiS chipset a while back.  These SiS chipsets seem to be generally problematic.

Alex

> 
> Just a thought,
> Christian.
> 
> Am 27.04.2014 21:55, schrieb Jerome Glisse:
> > On Sat, Apr 26, 2014 at 11:31:11PM -0400, Jerome Glisse wrote:
> >> On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> >>> Hi Thomas,
> >>>
> >>> On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> >>>> Hi!
> >>>>
> >>>> On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner
> <hannes@cmpxchg.org> wrote:
> >>>>> Each zone that holds userspace pages of one workload must be aged
> at a
> >>>>> speed proportional to the zone size.  [...]
> >>>>> Fix this with a very simple round robin allocator.  [...]
> >>>> This patch, adding NR_ALLOC_BATCH, eventually landed in mainline as
> >>>> commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> >>>>
> >>>> I recently upgraded a Debian testing system from a 3.11 kernel to 3.12,
> >>>> and it started to exhibit "strange" issues, which I then bisected to this
> >>>> patch.  I'm not saying that the patch is faulty, as it seems to be
> >>>> working fine for everyone else, so I rather assume that something in a
> >>>> (vastly?) different corner of the kernel (or my hardware?) is broken.
> >>>> ;-)
> >>>>
> >>>> The issue is that when X.org/lightdm starts up, there are "garbled"
> >>>> section on the screen, for example, rectangular boxes that are just
> black
> >>>> or otherwise "distorted", and/or sets of glyphs (corresponding to a set
> >>>> of characters; but not all characters) are displayed as rectangular gray
> >>>> or black boxes, and/or icons in a GNOME session are not displayed
> >>>> properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> >>>> a Linux console, I can use that one fine.  Switching back to X, in the
> >>>> majority of all cases, the screen will be completely black, but with the
> >>>> mouse cursor still rendered properly (done in hardware, I assume).
> >>>>
> >>>> Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for
> example on
> >>>> top of v3.12, and everything is back to normal.  The problem also
> >>>> persists with a v3.14 kernel that I just built.
> >>>>
> >>>> I will try to figure out what's going on, but will gladly take any
> >>>> pointers, or suggestions about how to tackle such a problem.
> >>>>
> >>>> The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-A1,
> CPU
> >>>> AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm not
> >>>> using that; instead I put in a Sapphire Radeon HD 4350 card.
> >>> I went over this code change repeatedly but I could not see anything
> >>> directly that would explain it.  However, this patch DOES change the
> >>> way allocations are placed (while still respecting zone specifiers
> >>> like __GFP_DMA etc.) and so it's possible that they unearthed a
> >>> corruption, or a wrongly set dma mask in the drivers.
> >>>
> >>> Ccing the radeon driver guys.  Full quote follows.
> >>>
> >>>>      $ cat < /proc/cpuinfo
> >>>>      processor       : 0
> >>>>      vendor_id       : AuthenticAMD
> >>>>      cpu family      : 15
> >>>>      model           : 47
> >>>>      model name      : AMD Sempron(tm) Processor 3000+
> >>>>      stepping        : 2
> >>>>      cpu MHz         : 1000.000
> >>>>      cache size      : 128 KB
> >>>>      physical id     : 0
> >>>>      siblings        : 1
> >>>>      core id         : 0
> >>>>      cpu cores       : 1
> >>>>      apicid          : 0
> >>>>      initial apicid  : 0
> >>>>      fpu             : yes
> >>>>      fpu_exception   : yes
> >>>>      cpuid level     : 1
> >>>>      wp              : yes
> >>>>      flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
> mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm
> 3dnowext 3dnow rep_good nopl pni lahf_lm
> >>>>      bogomips        : 2000.20
> >>>>      TLB size        : 1024 4K pages
> >>>>      clflush size    : 64
> >>>>      cache_alignment : 64
> >>>>      address sizes   : 40 bits physical, 48 bits virtual
> >>>>      power management: ts fid vid ttp tm stc
> >>>>      $ sudo lspci -nn -k -vv
> >>>>      00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS] 761/M761
> Host [1039:0761] (rev 01)
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard
> [1734:1099]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >>>>              Latency: 64
> >>>>              Region 0: Memory at f0000000 (32-bit, non-prefetchable)
> [size=32M]
> >>>>              Capabilities: [a0] AGP version 3.0
> >>>>                      Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64-
> HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> >>>>                      Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit-
> FW- Rate=<none>
> >>>>              Capabilities: [d0] HyperTransport: Slave or Primary Interface
> >>>>                      Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir- DUL-
> >>>>                      Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO-
> <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >>>>                      Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut-
> LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >>>>                      Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+
> <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >>>>                      Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut-
> LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> >>>>                      Revision ID: 1.05
> >>>>                      Link Frequency 0: 800MHz
> >>>>                      Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> >>>>                      Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+
> 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> >>>>                      Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA+
> UIDRD-
> >>>>                      Link Frequency 1: 200MHz
> >>>>                      Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> >>>>                      Link Frequency Capability 1: 200MHz- 300MHz- 400MHz-
> 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >>>>                      Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE-
> SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> >>>>                      Prefetchable memory behind bridge Upper: 00-00
> >>>>                      Bus Number: 00
> >>>>              Capabilities: [f0] HyperTransport: Interrupt Discovery and
> Configuration
> >>>>              Capabilities: [5c] HyperTransport: Revision ID: 1.05
> >>>>              Kernel driver in use: agpgart-amd64
> >>>>
> >>>>      00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI
> bridge [1039:0004] (prog-if 00 [Normal decode])
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 0, Cache Line Size: 64 bytes
> >>>>              Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> >>>>              I/O behind bridge: 00002000-00002fff
> >>>>              Memory behind bridge: f2100000-f21fffff
> >>>>              Prefetchable memory behind bridge: e0000000-efffffff
> >>>>              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort+ <SERR- <PERR-
> >>>>              BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset-
> FastB2B-
> >>>>                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >>>>              Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0
> >>>>                              ExtTag+ RBE-
> >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+
> TransPend-
> >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit
> Latency L0s <1us, L1 <2us
> >>>>                              ClockPM- Surprise- LLActRep+ BwNot-
> >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
> DLActive+ BWMgmt- ABWMgmt-
> >>>>                      SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
> Surprise-
> >>>>                              Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> >>>>                      SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
> HPIrq- LinkChg-
> >>>>                              Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >>>>                      SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+
> Interlock-
> >>>>                              Changed: MRL- PresDet- LinkState-
> >>>>                      RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna-
> CRSVisible-
> >>>>                      RootCap: CRSVisible-
> >>>>                      RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >>>>              Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> >>>>              Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> >>>>                      Address: 00000000  Data: 0000
> >>>>              Capabilities: [f4] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-
> ,D2-,D3hot+,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Kernel driver in use: pcieport
> >>>>
> >>>>      00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965
> [MuTIOL Media IO] [1039:0965] (rev 48)
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >>>>              Latency: 0
> >>>>
> >>>>      00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513 IDE
> Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard
> [1734:1095]
> >>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 128
> >>>>              Interrupt: pin ? routed to IRQ 16
> >>>>              Region 0: I/O ports at 01f0 [size=8]
> >>>>              Region 1: I/O ports at 03f4
> >>>>              Region 2: I/O ports at 0170 [size=8]
> >>>>              Region 3: I/O ports at 0374
> >>>>              Region 4: I/O ports at 1c80 [size=16]
> >>>>              Capabilities: [58] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-
> ,D2-,D3hot-,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Kernel driver in use: pata_sis
> >>>>
> >>>>      00:02.7 Multimedia audio controller [0401]: Silicon Integrated
> Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> >>>>              Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> >>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 173 (13000ns min, 2750ns max)
> >>>>              Interrupt: pin C routed to IRQ 18
> >>>>              Region 0: I/O ports at 1400 [size=256]
> >>>>              Region 1: I/O ports at 1000 [size=128]
> >>>>              Capabilities: [48] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1-
> ,D2-,D3hot+,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Kernel driver in use: snd_intel8x0
> >>>>
> >>>>      00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1
> Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard
> [1734:1095]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 64 (20000ns max)
> >>>>              Interrupt: pin A routed to IRQ 20
> >>>>              Region 0: Memory at f2000000 (32-bit, non-prefetchable)
> [size=4K]
> >>>>              Kernel driver in use: ohci-pci
> >>>>
> >>>>      00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1
> Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard
> [1734:1095]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 64 (20000ns max)
> >>>>              Interrupt: pin B routed to IRQ 21
> >>>>              Region 0: Memory at f2001000 (32-bit, non-prefetchable)
> [size=4K]
> >>>>              Kernel driver in use: ohci-pci
> >>>>
> >>>>      00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 1.1
> Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 Motherboard
> [1734:1095]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 64 (20000ns max)
> >>>>              Interrupt: pin C routed to IRQ 22
> >>>>              Region 0: Memory at f2002000 (32-bit, non-prefetchable)
> [size=4K]
> >>>>              Kernel driver in use: ohci-pci
> >>>>
> >>>>      00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB 2.0
> Controller [1039:7002] (prog-if 20 [EHCI])
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >>>>              Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 64 (20000ns max)
> >>>>              Interrupt: pin D routed to IRQ 23
> >>>>              Region 0: Memory at f2003000 (32-bit, non-prefetchable)
> [size=4K]
> >>>>              Capabilities: [50] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA
> PME(D0+,D1-,D2-,D3hot+,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Kernel driver in use: ehci-pci
> >>>>
> >>>>      00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182
> SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO PriP
> PriO])
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> >>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 64
> >>>>              Interrupt: pin A routed to IRQ 17
> >>>>              Region 0: I/O ports at 1cb0 [size=8]
> >>>>              Region 1: I/O ports at 1ca4 [size=4]
> >>>>              Region 2: I/O ports at 1ca8 [size=8]
> >>>>              Region 3: I/O ports at 1ca0 [size=4]
> >>>>              Region 4: I/O ports at 1c90 [size=16]
> >>>>              Region 5: I/O ports at 1c00 [size=128]
> >>>>              Capabilities: [58] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-
> ,D2-,D3hot-,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Kernel driver in use: sata_sis
> >>>>
> >>>>      00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-PCI
> bridge [1039:000a] (prog-if 00 [Normal decode])
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 0, Cache Line Size: 64 bytes
> >>>>              Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> >>>>              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- <SERR- <PERR-
> >>>>              BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
> >>>>                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> >>>>              Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS]
> Device [1039:0000]
> >>>>              Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> >>>>                      Address: fee0100c  Data: 4181
> >>>>              Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0
> >>>>                              ExtTag+ RBE-
> >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
> TransPend-
> >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit
> Latency L0s <1us, L1 <2us
> >>>>                              ClockPM- Surprise- LLActRep- BwNot-
> >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >>>>                      LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+
> DLActive- BWMgmt- ABWMgmt-
> >>>>                      SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
> Surprise-
> >>>>                              Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> >>>>                      SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
> HPIrq- LinkChg-
> >>>>                              Control: AttnInd Off, PwrInd Off, Power- Interlock-
> >>>>                      SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+
> Interlock-
> >>>>                              Changed: MRL- PresDet- LinkState-
> >>>>                      RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna-
> CRSVisible-
> >>>>                      RootCap: CRSVisible-
> >>>>                      RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> >>>>              Capabilities: [f4] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-
> ,D2-,D3hot+,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Capabilities: [100 v1] Virtual Channel
> >>>>                      Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> >>>>                      Arb:    Fixed- WRR32- WRR64- WRR128-
> >>>>                      Ctrl:   ArbSelect=Fixed
> >>>>                      Status: InProgress-
> >>>>                      VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> >>>>                              Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128-
> WRR256-
> >>>>                              Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> >>>>                              Status: NegoPending- InProgress-
> >>>>              Capabilities: [130 v1] Advanced Error Reporting
> >>>>                      UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
> UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >>>>                      UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
> UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> >>>>                      UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt-
> UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> >>>>                      CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> NonFatalErr-
> >>>>                      CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> NonFatalErr-
> >>>>                      AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap-
> ChkEn-
> >>>>              Kernel driver in use: pcieport
> >>>>
> >>>>      00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32 bytes
> >>>>              Interrupt: pin A routed to IRQ 19
> >>>>              Region 0: I/O ports at 1800 [size=256]
> >>>>              Region 1: Memory at f2004000 (32-bit, non-prefetchable)
> [size=256]
> >>>>              Capabilities: [dc] Power Management version 2
> >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-
> ,D1+,D2+,D3hot+,D3cold+)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Kernel driver in use: r8169
> >>>>
> >>>>      00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Capabilities: [80] HyperTransport: Host or Secondary Interface
> >>>>                      Command: WarmRst+ DblEnd- DevNum=0 ChainSide-
> HostHide+ Slave- <EOCErr- DUL-
> >>>>                      Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO-
> <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> >>>>                      Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut-
> LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> >>>>                      Revision ID: 1.02
> >>>>                      Link Frequency: 800MHz
> >>>>                      Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> >>>>                      Link Frequency Capability: 200MHz+ 300MHz- 400MHz+
> 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> >>>>                      Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA-
> UIDRD- ExtRS- UCnfE-
> >>>>
> >>>>      00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> [Athlon64/Opteron] Address Map [1022:1101]
> >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>
> >>>>      00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> [Athlon64/Opteron] DRAM Controller [1022:1102]
> >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Kernel driver in use: amd64_edac
> >>>>
> >>>>      00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Kernel driver in use: k8temp
> >>>>
> >>>>      01:00.0 VGA compatible controller [0300]: Advanced Micro Devices,
> Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v]
> [1002:9553] (prog-if 00 [VGA controller])
> >>>>              Subsystem: PC Partner Limited / Sapphire Technology Device
> [174b:3092]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> >>>>              Latency: 0, Cache Line Size: 64 bytes
> >>>>              Interrupt: pin A routed to IRQ 42
> >>>>              Region 0: Memory at e0000000 (64-bit, prefetchable)
> [size=256M]
> >>>>              Region 2: Memory at f2100000 (64-bit, non-prefetchable)
> [size=64K]
> >>>>              Region 4: I/O ports at 2000 [size=256]
> >>>>              [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> >>>>              Capabilities: [50] Power Management version 3
> >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-
> ,D2-,D3hot-,D3cold-)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
> <4us, L1 unlimited
> >>>>                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
> TransPend-
> >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit
> Latency L0s <64ns, L1 <1us
> >>>>                              ClockPM- Surprise- LLActRep- BwNot-
> >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
> DLActive- BWMgmt- ABWMgmt-
> >>>>                      DevCap2: Completion Timeout: Not Supported, TimeoutDis-,
> LTR-, OBFF Not Supported
> >>>>                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-,
> LTR-, OBFF Disabled
> >>>>                      LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance-
> SpeedDis-
> >>>>                               Transmit Margin: Normal Operating Range,
> EnterModifiedCompliance- ComplianceSOS-
> >>>>                               Compliance De-emphasis: -6dB
> >>>>                      LnkSta2: Current De-emphasis Level: -6dB,
> EqualizationComplete-, EqualizationPhase1-
> >>>>                               EqualizationPhase2-, EqualizationPhase3-,
> LinkEqualizationRequest-
> >>>>              Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >>>>                      Address: 00000000fee0100c  Data: 41e1
> >>>>              Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1
> Len=010 <?>
> >>>>              Kernel driver in use: radeon
> >>>>
> >>>>      01:00.1 Audio device [0403]: Advanced Micro Devices, Inc.
> [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> >>>>              Subsystem: PC Partner Limited / Sapphire Technology Device
> [174b:aa38]
> >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >>>>              Latency: 0, Cache Line Size: 64 bytes
> >>>>              Interrupt: pin B routed to IRQ 41
> >>>>              Region 0: Memory at f2110000 (64-bit, non-prefetchable)
> [size=16K]
> >>>>              Capabilities: [50] Power Management version 3
> >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-
> ,D2-,D3hot-,D3cold-)
> >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> >>>>              Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
> <4us, L1 unlimited
> >>>>                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
> TransPend-
> >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit
> Latency L0s <64ns, L1 <1us
> >>>>                              ClockPM- Surprise- LLActRep- BwNot-
> >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> >>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
> DLActive- BWMgmt- ABWMgmt-
> >>>>                      DevCap2: Completion Timeout: Not Supported, TimeoutDis-,
> LTR-, OBFF Not Supported
> >>>>                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-,
> LTR-, OBFF Disabled
> >>>>                      LnkSta2: Current De-emphasis Level: -6dB,
> EqualizationComplete-, EqualizationPhase1-
> >>>>                               EqualizationPhase2-, EqualizationPhase3-,
> LinkEqualizationRequest-
> >>>>              Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> >>>>                      Address: 00000000fee0100c  Data: 41d1
> >>>>              Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1
> Len=010 <?>
> >>>>              Kernel driver in use: snd_hda_intel
> >>>>
> >>>>
> >>>> Grüße,
> >>>>   Thomas
> >> Thomas can you provide output of lspci -t
> >>
> >> Also did you had a chance to test my ugly patch ?
> >>
> >> Cheers,
> >> Jérôme
> > If my ugly patch works does this quirk also work ?
> >

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* RE: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2014-04-28  7:30             ` Christian König
@ 2014-04-28 12:52               ` Deucher, Alexander
  -1 siblings, 0 replies; 82+ messages in thread
From: Deucher, Alexander @ 2014-04-28 12:52 UTC (permalink / raw)
  To: Koenig, Christian, Jerome Glisse, Thomas Schwinge
  Cc: Bjorn Helgaas, linux-pci, Johannes Weiner, Mel Gorman,
	Rik van Riel, Andrea Arcangeli, Zlatko Calusic, Minchan Kim,
	linux-mm, linux-kernel, Andrew Morton, dri-devel

> -----Original Message-----
> From: Deucher, Alexander
> Sent: Monday, April 28, 2014 8:50 AM
> To: Koenig, Christian; Jerome Glisse; Thomas Schwinge
> Cc: Bjorn Helgaas; linux-pci@vger.kernel.org; Johannes Weiner; Mel Gorman;
> Rik van Riel; Andrea Arcangeli; Zlatko Calusic; Minchan Kim; linux-
> mm@kvack.org; linux-kernel@vger.kernel.org; Andrew Morton; dri-
> devel@lists.freedesktop.org
> Subject: RE: radeon: screen garbled after page allocator change, was: Re:
> [patch v2 3/3] mm: page_alloc: fair zone allocator policy
> 
> > -----Original Message-----
> > From: Koenig, Christian
> > Sent: Monday, April 28, 2014 3:30 AM
> > To: Jerome Glisse; Thomas Schwinge
> > Cc: Bjorn Helgaas; linux-pci@vger.kernel.org; Johannes Weiner; Mel
> Gorman;
> > Rik van Riel; Andrea Arcangeli; Zlatko Calusic; Minchan Kim; linux-
> > mm@kvack.org; linux-kernel@vger.kernel.org; Andrew Morton; Deucher,
> > Alexander; dri-devel@lists.freedesktop.org
> > Subject: Re: radeon: screen garbled after page allocator change, was: Re:
> > [patch v2 3/3] mm: page_alloc: fair zone allocator policy
> >
> > > +	/* We are living in a monstruous world in which you can have the pci
> > > +	 * root complex behind an hypertransport link which can not address
> > > +	 * anything above 32bit (well hypertransport specification says 40bits
> > > +	 * but hardware such as SIS761 only support 32bits).
> > That looks more like a problem with this specific chipset rather than
> > something that needs a general solution like this.
> >
> > Maybe we should rather add the PCI-ID(s) of the thing to some kind of
> > quirks table for now so that the patch isn't so invasive and we can CC
> > stable as well?
> 
> IIRC, there was someone on IRC with a similar problem with a similar SiS
> chipset a while back.  These SiS chipsets seem to be generally problematic.

IIRC, in the IRC case, the fix was to limit the about of physical memory in the system.

Alex

> 
> Alex
> 
> >
> > Just a thought,
> > Christian.
> >
> > Am 27.04.2014 21:55, schrieb Jerome Glisse:
> > > On Sat, Apr 26, 2014 at 11:31:11PM -0400, Jerome Glisse wrote:
> > >> On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> > >>> Hi Thomas,
> > >>>
> > >>> On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > >>>> Hi!
> > >>>>
> > >>>> On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner
> > <hannes@cmpxchg.org> wrote:
> > >>>>> Each zone that holds userspace pages of one workload must be
> aged
> > at a
> > >>>>> speed proportional to the zone size.  [...]
> > >>>>> Fix this with a very simple round robin allocator.  [...]
> > >>>> This patch, adding NR_ALLOC_BATCH, eventually landed in mainline
> as
> > >>>> commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > >>>>
> > >>>> I recently upgraded a Debian testing system from a 3.11 kernel to
> 3.12,
> > >>>> and it started to exhibit "strange" issues, which I then bisected to this
> > >>>> patch.  I'm not saying that the patch is faulty, as it seems to be
> > >>>> working fine for everyone else, so I rather assume that something in
> a
> > >>>> (vastly?) different corner of the kernel (or my hardware?) is broken.
> > >>>> ;-)
> > >>>>
> > >>>> The issue is that when X.org/lightdm starts up, there are "garbled"
> > >>>> section on the screen, for example, rectangular boxes that are just
> > black
> > >>>> or otherwise "distorted", and/or sets of glyphs (corresponding to a
> set
> > >>>> of characters; but not all characters) are displayed as rectangular gray
> > >>>> or black boxes, and/or icons in a GNOME session are not displayed
> > >>>> properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > >>>> a Linux console, I can use that one fine.  Switching back to X, in the
> > >>>> majority of all cases, the screen will be completely black, but with the
> > >>>> mouse cursor still rendered properly (done in hardware, I assume).
> > >>>>
> > >>>> Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for
> > example on
> > >>>> top of v3.12, and everything is back to normal.  The problem also
> > >>>> persists with a v3.14 kernel that I just built.
> > >>>>
> > >>>> I will try to figure out what's going on, but will gladly take any
> > >>>> pointers, or suggestions about how to tackle such a problem.
> > >>>>
> > >>>> The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-
> A1,
> > CPU
> > >>>> AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm
> not
> > >>>> using that; instead I put in a Sapphire Radeon HD 4350 card.
> > >>> I went over this code change repeatedly but I could not see anything
> > >>> directly that would explain it.  However, this patch DOES change the
> > >>> way allocations are placed (while still respecting zone specifiers
> > >>> like __GFP_DMA etc.) and so it's possible that they unearthed a
> > >>> corruption, or a wrongly set dma mask in the drivers.
> > >>>
> > >>> Ccing the radeon driver guys.  Full quote follows.
> > >>>
> > >>>>      $ cat < /proc/cpuinfo
> > >>>>      processor       : 0
> > >>>>      vendor_id       : AuthenticAMD
> > >>>>      cpu family      : 15
> > >>>>      model           : 47
> > >>>>      model name      : AMD Sempron(tm) Processor 3000+
> > >>>>      stepping        : 2
> > >>>>      cpu MHz         : 1000.000
> > >>>>      cache size      : 128 KB
> > >>>>      physical id     : 0
> > >>>>      siblings        : 1
> > >>>>      core id         : 0
> > >>>>      cpu cores       : 1
> > >>>>      apicid          : 0
> > >>>>      initial apicid  : 0
> > >>>>      fpu             : yes
> > >>>>      fpu_exception   : yes
> > >>>>      cpuid level     : 1
> > >>>>      wp              : yes
> > >>>>      flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
> > mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt
> lm
> > 3dnowext 3dnow rep_good nopl pni lahf_lm
> > >>>>      bogomips        : 2000.20
> > >>>>      TLB size        : 1024 4K pages
> > >>>>      clflush size    : 64
> > >>>>      cache_alignment : 64
> > >>>>      address sizes   : 40 bits physical, 48 bits virtual
> > >>>>      power management: ts fid vid ttp tm stc
> > >>>>      $ sudo lspci -nn -k -vv
> > >>>>      00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS]
> 761/M761
> > Host [1039:0761] (rev 01)
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1
> Motherboard
> > [1734:1099]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >>>>              Latency: 64
> > >>>>              Region 0: Memory at f0000000 (32-bit, non-prefetchable)
> > [size=32M]
> > >>>>              Capabilities: [a0] AGP version 3.0
> > >>>>                      Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64-
> > HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> > >>>>                      Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit-
> > FW- Rate=<none>
> > >>>>              Capabilities: [d0] HyperTransport: Slave or Primary Interface
> > >>>>                      Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir-
> DUL-
> > >>>>                      Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO-
> > <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >>>>                      Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut-
> > LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >>>>                      Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+
> > <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >>>>                      Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut-
> > LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> > >>>>                      Revision ID: 1.05
> > >>>>                      Link Frequency 0: 800MHz
> > >>>>                      Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> > >>>>                      Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+
> > 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> > >>>>                      Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT-
> 64bA+
> > UIDRD-
> > >>>>                      Link Frequency 1: 200MHz
> > >>>>                      Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> > >>>>                      Link Frequency Capability 1: 200MHz- 300MHz- 400MHz-
> > 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >>>>                      Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE-
> > SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> > >>>>                      Prefetchable memory behind bridge Upper: 00-00
> > >>>>                      Bus Number: 00
> > >>>>              Capabilities: [f0] HyperTransport: Interrupt Discovery and
> > Configuration
> > >>>>              Capabilities: [5c] HyperTransport: Revision ID: 1.05
> > >>>>              Kernel driver in use: agpgart-amd64
> > >>>>
> > >>>>      00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-
> PCI
> > bridge [1039:0004] (prog-if 00 [Normal decode])
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 0, Cache Line Size: 64 bytes
> > >>>>              Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> > >>>>              I/O behind bridge: 00002000-00002fff
> > >>>>              Memory behind bridge: f2100000-f21fffff
> > >>>>              Prefetchable memory behind bridge: e0000000-efffffff
> > >>>>              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast
> >TAbort-
> > <TAbort- <MAbort+ <SERR- <PERR-
> > >>>>              BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset-
> > FastB2B-
> > >>>>                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >>>>              Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >>>>                              ExtTag+ RBE-
> > >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> > Unsupported-
> > >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+
> > TransPend-
> > >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1,
> Exit
> > Latency L0s <1us, L1 <2us
> > >>>>                              ClockPM- Surprise- LLActRep+ BwNot-
> > >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
> > DLActive+ BWMgmt- ABWMgmt-
> > >>>>                      SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
> > Surprise-
> > >>>>                              Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> > >>>>                      SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
> > HPIrq- LinkChg-
> > >>>>                              Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >>>>                      SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+
> > Interlock-
> > >>>>                              Changed: MRL- PresDet- LinkState-
> > >>>>                      RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna-
> > CRSVisible-
> > >>>>                      RootCap: CRSVisible-
> > >>>>                      RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >>>>              Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> > >>>>              Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> > >>>>                      Address: 00000000  Data: 0000
> > >>>>              Capabilities: [f4] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-
> > ,D2-,D3hot+,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Kernel driver in use: pcieport
> > >>>>
> > >>>>      00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965
> > [MuTIOL Media IO] [1039:0965] (rev 48)
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >>>>              Latency: 0
> > >>>>
> > >>>>      00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513
> IDE
> > Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1
> Motherboard
> > [1734:1095]
> > >>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 128
> > >>>>              Interrupt: pin ? routed to IRQ 16
> > >>>>              Region 0: I/O ports at 01f0 [size=8]
> > >>>>              Region 1: I/O ports at 03f4
> > >>>>              Region 2: I/O ports at 0170 [size=8]
> > >>>>              Region 3: I/O ports at 0374
> > >>>>              Region 4: I/O ports at 1c80 [size=16]
> > >>>>              Capabilities: [58] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-
> > ,D2-,D3hot-,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Kernel driver in use: pata_sis
> > >>>>
> > >>>>      00:02.7 Multimedia audio controller [0401]: Silicon Integrated
> > Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> > >>>>              Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> > >>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 173 (13000ns min, 2750ns max)
> > >>>>              Interrupt: pin C routed to IRQ 18
> > >>>>              Region 0: I/O ports at 1400 [size=256]
> > >>>>              Region 1: I/O ports at 1000 [size=128]
> > >>>>              Capabilities: [48] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-
> ,D1-
> > ,D2-,D3hot+,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Kernel driver in use: snd_intel8x0
> > >>>>
> > >>>>      00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB
> 1.1
> > Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1
> Motherboard
> > [1734:1095]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 64 (20000ns max)
> > >>>>              Interrupt: pin A routed to IRQ 20
> > >>>>              Region 0: Memory at f2000000 (32-bit, non-prefetchable)
> > [size=4K]
> > >>>>              Kernel driver in use: ohci-pci
> > >>>>
> > >>>>      00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB
> 1.1
> > Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1
> Motherboard
> > [1734:1095]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 64 (20000ns max)
> > >>>>              Interrupt: pin B routed to IRQ 21
> > >>>>              Region 0: Memory at f2001000 (32-bit, non-prefetchable)
> > [size=4K]
> > >>>>              Kernel driver in use: ohci-pci
> > >>>>
> > >>>>      00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB
> 1.1
> > Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1
> Motherboard
> > [1734:1095]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 64 (20000ns max)
> > >>>>              Interrupt: pin C routed to IRQ 22
> > >>>>              Region 0: Memory at f2002000 (32-bit, non-prefetchable)
> > [size=4K]
> > >>>>              Kernel driver in use: ohci-pci
> > >>>>
> > >>>>      00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB
> 2.0
> > Controller [1039:7002] (prog-if 20 [EHCI])
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >>>>              Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 64 (20000ns max)
> > >>>>              Interrupt: pin D routed to IRQ 23
> > >>>>              Region 0: Memory at f2003000 (32-bit, non-prefetchable)
> > [size=4K]
> > >>>>              Capabilities: [50] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA
> > PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Kernel driver in use: ehci-pci
> > >>>>
> > >>>>      00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182
> > SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO
> PriP
> > PriO])
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 64
> > >>>>              Interrupt: pin A routed to IRQ 17
> > >>>>              Region 0: I/O ports at 1cb0 [size=8]
> > >>>>              Region 1: I/O ports at 1ca4 [size=4]
> > >>>>              Region 2: I/O ports at 1ca8 [size=8]
> > >>>>              Region 3: I/O ports at 1ca0 [size=4]
> > >>>>              Region 4: I/O ports at 1c90 [size=16]
> > >>>>              Region 5: I/O ports at 1c00 [size=128]
> > >>>>              Capabilities: [58] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-
> > ,D2-,D3hot-,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Kernel driver in use: sata_sis
> > >>>>
> > >>>>      00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-
> PCI
> > bridge [1039:000a] (prog-if 00 [Normal decode])
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 0, Cache Line Size: 64 bytes
> > >>>>              Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> > >>>>              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast
> >TAbort-
> > <TAbort- <MAbort- <SERR- <PERR-
> > >>>>              BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset-
> FastB2B-
> > >>>>                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >>>>              Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS]
> > Device [1039:0000]
> > >>>>              Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > >>>>                      Address: fee0100c  Data: 4181
> > >>>>              Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >>>>                              ExtTag+ RBE-
> > >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> > Unsupported-
> > >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
> > TransPend-
> > >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1,
> Exit
> > Latency L0s <1us, L1 <2us
> > >>>>                              ClockPM- Surprise- LLActRep- BwNot-
> > >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> > >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >>>>                      LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+
> > DLActive- BWMgmt- ABWMgmt-
> > >>>>                      SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
> > Surprise-
> > >>>>                              Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> > >>>>                      SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
> > HPIrq- LinkChg-
> > >>>>                              Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >>>>                      SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+
> > Interlock-
> > >>>>                              Changed: MRL- PresDet- LinkState-
> > >>>>                      RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna-
> > CRSVisible-
> > >>>>                      RootCap: CRSVisible-
> > >>>>                      RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >>>>              Capabilities: [f4] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-
> > ,D2-,D3hot+,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Capabilities: [100 v1] Virtual Channel
> > >>>>                      Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> > >>>>                      Arb:    Fixed- WRR32- WRR64- WRR128-
> > >>>>                      Ctrl:   ArbSelect=Fixed
> > >>>>                      Status: InProgress-
> > >>>>                      VC0:    Caps:   PATOffset=00 MaxTimeSlots=1
> RejSnoopTrans-
> > >>>>                              Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128-
> > WRR256-
> > >>>>                              Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> > >>>>                              Status: NegoPending- InProgress-
> > >>>>              Capabilities: [130 v1] Advanced Error Reporting
> > >>>>                      UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
> > UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >>>>                      UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
> > UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >>>>                      UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt-
> > UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> > >>>>                      CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> > NonFatalErr-
> > >>>>                      CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> > NonFatalErr-
> > >>>>                      AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap-
> > ChkEn-
> > >>>>              Kernel driver in use: pcieport
> > >>>>
> > >>>>      00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> > RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32
> bytes
> > >>>>              Interrupt: pin A routed to IRQ 19
> > >>>>              Region 0: I/O ports at 1800 [size=256]
> > >>>>              Region 1: Memory at f2004000 (32-bit, non-prefetchable)
> > [size=256]
> > >>>>              Capabilities: [dc] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-
> > ,D1+,D2+,D3hot+,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Kernel driver in use: r8169
> > >>>>
> > >>>>      00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> > [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> > >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Capabilities: [80] HyperTransport: Host or Secondary Interface
> > >>>>                      Command: WarmRst+ DblEnd- DevNum=0 ChainSide-
> > HostHide+ Slave- <EOCErr- DUL-
> > >>>>                      Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO-
> > <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >>>>                      Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut-
> > LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >>>>                      Revision ID: 1.02
> > >>>>                      Link Frequency: 800MHz
> > >>>>                      Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> > >>>>                      Link Frequency Capability: 200MHz+ 300MHz- 400MHz+
> > 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >>>>                      Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA-
> > UIDRD- ExtRS- UCnfE-
> > >>>>
> > >>>>      00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> > [Athlon64/Opteron] Address Map [1022:1101]
> > >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort-
> > <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>
> > >>>>      00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> > [Athlon64/Opteron] DRAM Controller [1022:1102]
> > >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort-
> > <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Kernel driver in use: amd64_edac
> > >>>>
> > >>>>      00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> > [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> > >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort-
> > <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Kernel driver in use: k8temp
> > >>>>
> > >>>>      01:00.0 VGA compatible controller [0300]: Advanced Micro Devices,
> > Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v]
> > [1002:9553] (prog-if 00 [VGA controller])
> > >>>>              Subsystem: PC Partner Limited / Sapphire Technology Device
> > [174b:3092]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> > >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >>>>              Latency: 0, Cache Line Size: 64 bytes
> > >>>>              Interrupt: pin A routed to IRQ 42
> > >>>>              Region 0: Memory at e0000000 (64-bit, prefetchable)
> > [size=256M]
> > >>>>              Region 2: Memory at f2100000 (64-bit, non-prefetchable)
> > [size=64K]
> > >>>>              Region 4: I/O ports at 2000 [size=256]
> > >>>>              [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> > >>>>              Capabilities: [50] Power Management version 3
> > >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-
> ,D1-
> > ,D2-,D3hot-,D3cold-)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
> > <4us, L1 unlimited
> > >>>>                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> > Unsupported-
> > >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
> > TransPend-
> > >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1,
> Exit
> > Latency L0s <64ns, L1 <1us
> > >>>>                              ClockPM- Surprise- LLActRep- BwNot-
> > >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
> > DLActive- BWMgmt- ABWMgmt-
> > >>>>                      DevCap2: Completion Timeout: Not Supported,
> TimeoutDis-,
> > LTR-, OBFF Not Supported
> > >>>>                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-,
> > LTR-, OBFF Disabled
> > >>>>                      LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance-
> > SpeedDis-
> > >>>>                               Transmit Margin: Normal Operating Range,
> > EnterModifiedCompliance- ComplianceSOS-
> > >>>>                               Compliance De-emphasis: -6dB
> > >>>>                      LnkSta2: Current De-emphasis Level: -6dB,
> > EqualizationComplete-, EqualizationPhase1-
> > >>>>                               EqualizationPhase2-, EqualizationPhase3-,
> > LinkEqualizationRequest-
> > >>>>              Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >>>>                      Address: 00000000fee0100c  Data: 41e1
> > >>>>              Capabilities: [100 v1] Vendor Specific Information: ID=0001
> Rev=1
> > Len=010 <?>
> > >>>>              Kernel driver in use: radeon
> > >>>>
> > >>>>      01:00.1 Audio device [0403]: Advanced Micro Devices, Inc.
> > [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> > >>>>              Subsystem: PC Partner Limited / Sapphire Technology Device
> > [174b:aa38]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 0, Cache Line Size: 64 bytes
> > >>>>              Interrupt: pin B routed to IRQ 41
> > >>>>              Region 0: Memory at f2110000 (64-bit, non-prefetchable)
> > [size=16K]
> > >>>>              Capabilities: [50] Power Management version 3
> > >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-
> ,D1-
> > ,D2-,D3hot-,D3cold-)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
> > <4us, L1 unlimited
> > >>>>                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> > Unsupported-
> > >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
> > TransPend-
> > >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1,
> Exit
> > Latency L0s <64ns, L1 <1us
> > >>>>                              ClockPM- Surprise- LLActRep- BwNot-
> > >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
> > DLActive- BWMgmt- ABWMgmt-
> > >>>>                      DevCap2: Completion Timeout: Not Supported,
> TimeoutDis-,
> > LTR-, OBFF Not Supported
> > >>>>                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-,
> > LTR-, OBFF Disabled
> > >>>>                      LnkSta2: Current De-emphasis Level: -6dB,
> > EqualizationComplete-, EqualizationPhase1-
> > >>>>                               EqualizationPhase2-, EqualizationPhase3-,
> > LinkEqualizationRequest-
> > >>>>              Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >>>>                      Address: 00000000fee0100c  Data: 41d1
> > >>>>              Capabilities: [100 v1] Vendor Specific Information: ID=0001
> Rev=1
> > Len=010 <?>
> > >>>>              Kernel driver in use: snd_hda_intel
> > >>>>
> > >>>>
> > >>>> Grüße,
> > >>>>   Thomas
> > >> Thomas can you provide output of lspci -t
> > >>
> > >> Also did you had a chance to test my ugly patch ?
> > >>
> > >> Cheers,
> > >> Jérôme
> > > If my ugly patch works does this quirk also work ?
> > >


^ permalink raw reply	[flat|nested] 82+ messages in thread

* RE: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
@ 2014-04-28 12:52               ` Deucher, Alexander
  0 siblings, 0 replies; 82+ messages in thread
From: Deucher, Alexander @ 2014-04-28 12:52 UTC (permalink / raw)
  To: Koenig, Christian, Jerome Glisse, Thomas Schwinge
  Cc: Bjorn Helgaas, linux-pci, Johannes Weiner, Mel Gorman,
	Rik van Riel, Andrea Arcangeli, Zlatko Calusic, Minchan Kim,
	linux-mm, linux-kernel, Andrew Morton, dri-devel

> -----Original Message-----
> From: Deucher, Alexander
> Sent: Monday, April 28, 2014 8:50 AM
> To: Koenig, Christian; Jerome Glisse; Thomas Schwinge
> Cc: Bjorn Helgaas; linux-pci@vger.kernel.org; Johannes Weiner; Mel Gorman;
> Rik van Riel; Andrea Arcangeli; Zlatko Calusic; Minchan Kim; linux-
> mm@kvack.org; linux-kernel@vger.kernel.org; Andrew Morton; dri-
> devel@lists.freedesktop.org
> Subject: RE: radeon: screen garbled after page allocator change, was: Re:
> [patch v2 3/3] mm: page_alloc: fair zone allocator policy
> 
> > -----Original Message-----
> > From: Koenig, Christian
> > Sent: Monday, April 28, 2014 3:30 AM
> > To: Jerome Glisse; Thomas Schwinge
> > Cc: Bjorn Helgaas; linux-pci@vger.kernel.org; Johannes Weiner; Mel
> Gorman;
> > Rik van Riel; Andrea Arcangeli; Zlatko Calusic; Minchan Kim; linux-
> > mm@kvack.org; linux-kernel@vger.kernel.org; Andrew Morton; Deucher,
> > Alexander; dri-devel@lists.freedesktop.org
> > Subject: Re: radeon: screen garbled after page allocator change, was: Re:
> > [patch v2 3/3] mm: page_alloc: fair zone allocator policy
> >
> > > +	/* We are living in a monstruous world in which you can have the pci
> > > +	 * root complex behind an hypertransport link which can not address
> > > +	 * anything above 32bit (well hypertransport specification says 40bits
> > > +	 * but hardware such as SIS761 only support 32bits).
> > That looks more like a problem with this specific chipset rather than
> > something that needs a general solution like this.
> >
> > Maybe we should rather add the PCI-ID(s) of the thing to some kind of
> > quirks table for now so that the patch isn't so invasive and we can CC
> > stable as well?
> 
> IIRC, there was someone on IRC with a similar problem with a similar SiS
> chipset a while back.  These SiS chipsets seem to be generally problematic.

IIRC, in the IRC case, the fix was to limit the about of physical memory in the system.

Alex

> 
> Alex
> 
> >
> > Just a thought,
> > Christian.
> >
> > Am 27.04.2014 21:55, schrieb Jerome Glisse:
> > > On Sat, Apr 26, 2014 at 11:31:11PM -0400, Jerome Glisse wrote:
> > >> On Thu, Apr 24, 2014 at 09:37:22AM -0400, Johannes Weiner wrote:
> > >>> Hi Thomas,
> > >>>
> > >>> On Wed, Apr 02, 2014 at 04:26:08PM +0200, Thomas Schwinge wrote:
> > >>>> Hi!
> > >>>>
> > >>>> On Fri,  2 Aug 2013 11:37:26 -0400, Johannes Weiner
> > <hannes@cmpxchg.org> wrote:
> > >>>>> Each zone that holds userspace pages of one workload must be
> aged
> > at a
> > >>>>> speed proportional to the zone size.  [...]
> > >>>>> Fix this with a very simple round robin allocator.  [...]
> > >>>> This patch, adding NR_ALLOC_BATCH, eventually landed in mainline
> as
> > >>>> commit 81c0a2bb515fd4daae8cab64352877480792b515 (2013-09-11).
> > >>>>
> > >>>> I recently upgraded a Debian testing system from a 3.11 kernel to
> 3.12,
> > >>>> and it started to exhibit "strange" issues, which I then bisected to this
> > >>>> patch.  I'm not saying that the patch is faulty, as it seems to be
> > >>>> working fine for everyone else, so I rather assume that something in
> a
> > >>>> (vastly?) different corner of the kernel (or my hardware?) is broken.
> > >>>> ;-)
> > >>>>
> > >>>> The issue is that when X.org/lightdm starts up, there are "garbled"
> > >>>> section on the screen, for example, rectangular boxes that are just
> > black
> > >>>> or otherwise "distorted", and/or sets of glyphs (corresponding to a
> set
> > >>>> of characters; but not all characters) are displayed as rectangular gray
> > >>>> or black boxes, and/or icons in a GNOME session are not displayed
> > >>>> properly, and so on.  (Can take a snapshot if that helps?)  Switching to
> > >>>> a Linux console, I can use that one fine.  Switching back to X, in the
> > >>>> majority of all cases, the screen will be completely black, but with the
> > >>>> mouse cursor still rendered properly (done in hardware, I assume).
> > >>>>
> > >>>> Reverting commit 81c0a2bb515fd4daae8cab64352877480792b515, for
> > example on
> > >>>> top of v3.12, and everything is back to normal.  The problem also
> > >>>> persists with a v3.14 kernel that I just built.
> > >>>>
> > >>>> I will try to figure out what's going on, but will gladly take any
> > >>>> pointers, or suggestions about how to tackle such a problem.
> > >>>>
> > >>>> The hardware is a Fujitsu Siemens Esprimo E5600, mainboard D2264-
> A1,
> > CPU
> > >>>> AMD Sempron 3000+.  There is a on-board graphics thingy, but I'm
> not
> > >>>> using that; instead I put in a Sapphire Radeon HD 4350 card.
> > >>> I went over this code change repeatedly but I could not see anything
> > >>> directly that would explain it.  However, this patch DOES change the
> > >>> way allocations are placed (while still respecting zone specifiers
> > >>> like __GFP_DMA etc.) and so it's possible that they unearthed a
> > >>> corruption, or a wrongly set dma mask in the drivers.
> > >>>
> > >>> Ccing the radeon driver guys.  Full quote follows.
> > >>>
> > >>>>      $ cat < /proc/cpuinfo
> > >>>>      processor       : 0
> > >>>>      vendor_id       : AuthenticAMD
> > >>>>      cpu family      : 15
> > >>>>      model           : 47
> > >>>>      model name      : AMD Sempron(tm) Processor 3000+
> > >>>>      stepping        : 2
> > >>>>      cpu MHz         : 1000.000
> > >>>>      cache size      : 128 KB
> > >>>>      physical id     : 0
> > >>>>      siblings        : 1
> > >>>>      core id         : 0
> > >>>>      cpu cores       : 1
> > >>>>      apicid          : 0
> > >>>>      initial apicid  : 0
> > >>>>      fpu             : yes
> > >>>>      fpu_exception   : yes
> > >>>>      cpuid level     : 1
> > >>>>      wp              : yes
> > >>>>      flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
> > mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt
> lm
> > 3dnowext 3dnow rep_good nopl pni lahf_lm
> > >>>>      bogomips        : 2000.20
> > >>>>      TLB size        : 1024 4K pages
> > >>>>      clflush size    : 64
> > >>>>      cache_alignment : 64
> > >>>>      address sizes   : 40 bits physical, 48 bits virtual
> > >>>>      power management: ts fid vid ttp tm stc
> > >>>>      $ sudo lspci -nn -k -vv
> > >>>>      00:00.0 Host bridge [0600]: Silicon Integrated Systems [SiS]
> 761/M761
> > Host [1039:0761] (rev 01)
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1
> Motherboard
> > [1734:1099]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >>>>              Latency: 64
> > >>>>              Region 0: Memory at f0000000 (32-bit, non-prefetchable)
> > [size=32M]
> > >>>>              Capabilities: [a0] AGP version 3.0
> > >>>>                      Status: RQ=32 Iso- ArqSz=2 Cal=3 SBA+ ITACoh- GART64-
> > HTrans- 64bit- FW- AGP3+ Rate=x4,x8
> > >>>>                      Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit-
> > FW- Rate=<none>
> > >>>>              Capabilities: [d0] HyperTransport: Slave or Primary Interface
> > >>>>                      Command: BaseUnitID=0 UnitCnt=17 MastHost- DefDir-
> DUL-
> > >>>>                      Link Control 0: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO-
> > <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >>>>                      Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut-
> > LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >>>>                      Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+
> > <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >>>>                      Link Config 1: MLWI=N/C DwFcIn- MLWO=N/C DwFcOut-
> > LWI=N/C DwFcInEn- LWO=N/C DwFcOutEn-
> > >>>>                      Revision ID: 1.05
> > >>>>                      Link Frequency 0: 800MHz
> > >>>>                      Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
> > >>>>                      Link Frequency Capability 0: 200MHz+ 300MHz- 400MHz+
> > 500MHz- 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz+ 1.4GHz- 1.6GHz- Vend-
> > >>>>                      Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT-
> 64bA+
> > UIDRD-
> > >>>>                      Link Frequency 1: 200MHz
> > >>>>                      Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
> > >>>>                      Link Frequency Capability 1: 200MHz- 300MHz- 400MHz-
> > 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >>>>                      Error Handling: PFlE- OFlE- PFE- OFE- EOCFE- RFE- CRCFE-
> > SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
> > >>>>                      Prefetchable memory behind bridge Upper: 00-00
> > >>>>                      Bus Number: 00
> > >>>>              Capabilities: [f0] HyperTransport: Interrupt Discovery and
> > Configuration
> > >>>>              Capabilities: [5c] HyperTransport: Revision ID: 1.05
> > >>>>              Kernel driver in use: agpgart-amd64
> > >>>>
> > >>>>      00:01.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-
> PCI
> > bridge [1039:0004] (prog-if 00 [Normal decode])
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 0, Cache Line Size: 64 bytes
> > >>>>              Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> > >>>>              I/O behind bridge: 00002000-00002fff
> > >>>>              Memory behind bridge: f2100000-f21fffff
> > >>>>              Prefetchable memory behind bridge: e0000000-efffffff
> > >>>>              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast
> >TAbort-
> > <TAbort- <MAbort+ <SERR- <PERR-
> > >>>>              BridgeCtl: Parity+ SERR+ NoISA+ VGA+ MAbort- >Reset-
> > FastB2B-
> > >>>>                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >>>>              Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >>>>                              ExtTag+ RBE-
> > >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> > Unsupported-
> > >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr+
> > TransPend-
> > >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1,
> Exit
> > Latency L0s <1us, L1 <2us
> > >>>>                              ClockPM- Surprise- LLActRep+ BwNot-
> > >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
> > DLActive+ BWMgmt- ABWMgmt-
> > >>>>                      SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
> > Surprise-
> > >>>>                              Slot #0, PowerLimit 75.000W; Interlock- NoCompl-
> > >>>>                      SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
> > HPIrq- LinkChg-
> > >>>>                              Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >>>>                      SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+
> > Interlock-
> > >>>>                              Changed: MRL- PresDet- LinkState-
> > >>>>                      RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna-
> > CRSVisible-
> > >>>>                      RootCap: CRSVisible-
> > >>>>                      RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >>>>              Capabilities: [bc] HyperTransport: MSI Mapping Enable- Fixed+
> > >>>>              Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
> > >>>>                      Address: 00000000  Data: 0000
> > >>>>              Capabilities: [f4] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-
> > ,D2-,D3hot+,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Kernel driver in use: pcieport
> > >>>>
> > >>>>      00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS965
> > [MuTIOL Media IO] [1039:0965] (rev 48)
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >>>>              Latency: 0
> > >>>>
> > >>>>      00:02.5 IDE interface [0101]: Silicon Integrated Systems [SiS] 5513
> IDE
> > Controller [1039:5513] (rev 01) (prog-if 80 [Master])
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1
> Motherboard
> > [1734:1095]
> > >>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 128
> > >>>>              Interrupt: pin ? routed to IRQ 16
> > >>>>              Region 0: I/O ports at 01f0 [size=8]
> > >>>>              Region 1: I/O ports at 03f4
> > >>>>              Region 2: I/O ports at 0170 [size=8]
> > >>>>              Region 3: I/O ports at 0374
> > >>>>              Region 4: I/O ports at 1c80 [size=16]
> > >>>>              Capabilities: [58] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-
> > ,D2-,D3hot-,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Kernel driver in use: pata_sis
> > >>>>
> > >>>>      00:02.7 Multimedia audio controller [0401]: Silicon Integrated
> > Systems [SiS] SiS7012 AC'97 Sound Controller [1039:7012] (rev a0)
> > >>>>              Subsystem: Fujitsu Technology Solutions Device [1734:109c]
> > >>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 173 (13000ns min, 2750ns max)
> > >>>>              Interrupt: pin C routed to IRQ 18
> > >>>>              Region 0: I/O ports at 1400 [size=256]
> > >>>>              Region 1: I/O ports at 1000 [size=128]
> > >>>>              Capabilities: [48] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-
> ,D1-
> > ,D2-,D3hot+,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Kernel driver in use: snd_intel8x0
> > >>>>
> > >>>>      00:03.0 USB controller [0c03]: Silicon Integrated Systems [SiS] USB
> 1.1
> > Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1
> Motherboard
> > [1734:1095]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 64 (20000ns max)
> > >>>>              Interrupt: pin A routed to IRQ 20
> > >>>>              Region 0: Memory at f2000000 (32-bit, non-prefetchable)
> > [size=4K]
> > >>>>              Kernel driver in use: ohci-pci
> > >>>>
> > >>>>      00:03.1 USB controller [0c03]: Silicon Integrated Systems [SiS] USB
> 1.1
> > Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1
> Motherboard
> > [1734:1095]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 64 (20000ns max)
> > >>>>              Interrupt: pin B routed to IRQ 21
> > >>>>              Region 0: Memory at f2001000 (32-bit, non-prefetchable)
> > [size=4K]
> > >>>>              Kernel driver in use: ohci-pci
> > >>>>
> > >>>>      00:03.2 USB controller [0c03]: Silicon Integrated Systems [SiS] USB
> 1.1
> > Controller [1039:7001] (rev 0f) (prog-if 10 [OHCI])
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1
> Motherboard
> > [1734:1095]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 64 (20000ns max)
> > >>>>              Interrupt: pin C routed to IRQ 22
> > >>>>              Region 0: Memory at f2002000 (32-bit, non-prefetchable)
> > [size=4K]
> > >>>>              Kernel driver in use: ohci-pci
> > >>>>
> > >>>>      00:03.3 USB controller [0c03]: Silicon Integrated Systems [SiS] USB
> 2.0
> > Controller [1039:7002] (prog-if 20 [EHCI])
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >>>>              Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 64 (20000ns max)
> > >>>>              Interrupt: pin D routed to IRQ 23
> > >>>>              Region 0: Memory at f2003000 (32-bit, non-prefetchable)
> > [size=4K]
> > >>>>              Capabilities: [50] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA
> > PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Kernel driver in use: ehci-pci
> > >>>>
> > >>>>      00:05.0 IDE interface [0101]: Silicon Integrated Systems [SiS] 182
> > SATA/RAID Controller [1039:0182] (rev 01) (prog-if 8f [Master SecP SecO
> PriP
> > PriO])
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1095]
> > >>>>              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 64
> > >>>>              Interrupt: pin A routed to IRQ 17
> > >>>>              Region 0: I/O ports at 1cb0 [size=8]
> > >>>>              Region 1: I/O ports at 1ca4 [size=4]
> > >>>>              Region 2: I/O ports at 1ca8 [size=8]
> > >>>>              Region 3: I/O ports at 1ca0 [size=4]
> > >>>>              Region 4: I/O ports at 1c90 [size=16]
> > >>>>              Region 5: I/O ports at 1c00 [size=128]
> > >>>>              Capabilities: [58] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-
> > ,D2-,D3hot-,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Kernel driver in use: sata_sis
> > >>>>
> > >>>>      00:06.0 PCI bridge [0604]: Silicon Integrated Systems [SiS] PCI-to-
> PCI
> > bridge [1039:000a] (prog-if 00 [Normal decode])
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 0, Cache Line Size: 64 bytes
> > >>>>              Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
> > >>>>              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast
> >TAbort-
> > <TAbort- <MAbort- <SERR- <PERR-
> > >>>>              BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset-
> FastB2B-
> > >>>>                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> > >>>>              Capabilities: [b0] Subsystem: Silicon Integrated Systems [SiS]
> > Device [1039:0000]
> > >>>>              Capabilities: [c0] MSI: Enable+ Count=1/1 Maskable- 64bit-
> > >>>>                      Address: fee0100c  Data: 4181
> > >>>>              Capabilities: [d0] Express (v1) Root Port (Slot+), MSI 00
> > >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0
> > >>>>                              ExtTag+ RBE-
> > >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> > Unsupported-
> > >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
> > TransPend-
> > >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1,
> Exit
> > Latency L0s <1us, L1 <2us
> > >>>>                              ClockPM- Surprise- LLActRep- BwNot-
> > >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> > >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >>>>                      LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+
> > DLActive- BWMgmt- ABWMgmt-
> > >>>>                      SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
> > Surprise-
> > >>>>                              Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> > >>>>                      SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
> > HPIrq- LinkChg-
> > >>>>                              Control: AttnInd Off, PwrInd Off, Power- Interlock-
> > >>>>                      SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+
> > Interlock-
> > >>>>                              Changed: MRL- PresDet- LinkState-
> > >>>>                      RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna-
> > CRSVisible-
> > >>>>                      RootCap: CRSVisible-
> > >>>>                      RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> > >>>>              Capabilities: [f4] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-
> > ,D2-,D3hot+,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Capabilities: [100 v1] Virtual Channel
> > >>>>                      Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
> > >>>>                      Arb:    Fixed- WRR32- WRR64- WRR128-
> > >>>>                      Ctrl:   ArbSelect=Fixed
> > >>>>                      Status: InProgress-
> > >>>>                      VC0:    Caps:   PATOffset=00 MaxTimeSlots=1
> RejSnoopTrans-
> > >>>>                              Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128-
> > WRR256-
> > >>>>                              Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> > >>>>                              Status: NegoPending- InProgress-
> > >>>>              Capabilities: [130 v1] Advanced Error Reporting
> > >>>>                      UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
> > UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >>>>                      UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
> > UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> > >>>>                      UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt-
> > UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> > >>>>                      CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> > NonFatalErr-
> > >>>>                      CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> > NonFatalErr-
> > >>>>                      AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap-
> > ChkEn-
> > >>>>              Kernel driver in use: pcieport
> > >>>>
> > >>>>      00:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> > RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> > >>>>              Subsystem: Fujitsu Technology Solutions D2030-A1 [1734:1091]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 64 (8000ns min, 16000ns max), Cache Line Size: 32
> bytes
> > >>>>              Interrupt: pin A routed to IRQ 19
> > >>>>              Region 0: I/O ports at 1800 [size=256]
> > >>>>              Region 1: Memory at f2004000 (32-bit, non-prefetchable)
> > [size=256]
> > >>>>              Capabilities: [dc] Power Management version 2
> > >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-
> > ,D1+,D2+,D3hot+,D3cold+)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Kernel driver in use: r8169
> > >>>>
> > >>>>      00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> > [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
> > >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Capabilities: [80] HyperTransport: Host or Secondary Interface
> > >>>>                      Command: WarmRst+ DblEnd- DevNum=0 ChainSide-
> > HostHide+ Slave- <EOCErr- DUL-
> > >>>>                      Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO-
> > <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
> > >>>>                      Link Config: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut-
> > LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
> > >>>>                      Revision ID: 1.02
> > >>>>                      Link Frequency: 800MHz
> > >>>>                      Link Error: <Prot- <Ovfl- <EOC- CTLTm-
> > >>>>                      Link Frequency Capability: 200MHz+ 300MHz- 400MHz+
> > 500MHz- 600MHz+ 800MHz+ 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
> > >>>>                      Feature Capability: IsocFC- LDTSTOP+ CRCTM- ECTLT- 64bA-
> > UIDRD- ExtRS- UCnfE-
> > >>>>
> > >>>>      00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> > [Athlon64/Opteron] Address Map [1022:1101]
> > >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort-
> > <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>
> > >>>>      00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> > [Athlon64/Opteron] DRAM Controller [1022:1102]
> > >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort-
> > <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Kernel driver in use: amd64_edac
> > >>>>
> > >>>>      00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] K8
> > [Athlon64/Opteron] Miscellaneous Control [1022:1103]
> > >>>>              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> > >>>>              Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> >TAbort-
> > <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Kernel driver in use: k8temp
> > >>>>
> > >>>>      01:00.0 VGA compatible controller [0300]: Advanced Micro Devices,
> > Inc. [AMD/ATI] RV710/M92 [Mobility Radeon HD 4530/4570/545v]
> > [1002:9553] (prog-if 00 [VGA controller])
> > >>>>              Subsystem: PC Partner Limited / Sapphire Technology Device
> > [174b:3092]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> > >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
> > >>>>              Latency: 0, Cache Line Size: 64 bytes
> > >>>>              Interrupt: pin A routed to IRQ 42
> > >>>>              Region 0: Memory at e0000000 (64-bit, prefetchable)
> > [size=256M]
> > >>>>              Region 2: Memory at f2100000 (64-bit, non-prefetchable)
> > [size=64K]
> > >>>>              Region 4: I/O ports at 2000 [size=256]
> > >>>>              [virtual] Expansion ROM at f2120000 [disabled] [size=128K]
> > >>>>              Capabilities: [50] Power Management version 3
> > >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-
> ,D1-
> > ,D2-,D3hot-,D3cold-)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
> > <4us, L1 unlimited
> > >>>>                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> > Unsupported-
> > >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
> > TransPend-
> > >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1,
> Exit
> > Latency L0s <64ns, L1 <1us
> > >>>>                              ClockPM- Surprise- LLActRep- BwNot-
> > >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
> > DLActive- BWMgmt- ABWMgmt-
> > >>>>                      DevCap2: Completion Timeout: Not Supported,
> TimeoutDis-,
> > LTR-, OBFF Not Supported
> > >>>>                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-,
> > LTR-, OBFF Disabled
> > >>>>                      LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance-
> > SpeedDis-
> > >>>>                               Transmit Margin: Normal Operating Range,
> > EnterModifiedCompliance- ComplianceSOS-
> > >>>>                               Compliance De-emphasis: -6dB
> > >>>>                      LnkSta2: Current De-emphasis Level: -6dB,
> > EqualizationComplete-, EqualizationPhase1-
> > >>>>                               EqualizationPhase2-, EqualizationPhase3-,
> > LinkEqualizationRequest-
> > >>>>              Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >>>>                      Address: 00000000fee0100c  Data: 41e1
> > >>>>              Capabilities: [100 v1] Vendor Specific Information: ID=0001
> Rev=1
> > Len=010 <?>
> > >>>>              Kernel driver in use: radeon
> > >>>>
> > >>>>      01:00.1 Audio device [0403]: Advanced Micro Devices, Inc.
> > [AMD/ATI] RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
> > >>>>              Subsystem: PC Partner Limited / Sapphire Technology Device
> > [174b:aa38]
> > >>>>              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV-
> > VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> > >>>>              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
> > >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > >>>>              Latency: 0, Cache Line Size: 64 bytes
> > >>>>              Interrupt: pin B routed to IRQ 41
> > >>>>              Region 0: Memory at f2110000 (64-bit, non-prefetchable)
> > [size=16K]
> > >>>>              Capabilities: [50] Power Management version 3
> > >>>>                      Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-
> ,D1-
> > ,D2-,D3hot-,D3cold-)
> > >>>>                      Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> > >>>>              Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
> > >>>>                      DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
> > <4us, L1 unlimited
> > >>>>                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> > >>>>                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> > Unsupported-
> > >>>>                              RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> > >>>>                              MaxPayload 128 bytes, MaxReadReq 128 bytes
> > >>>>                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
> > TransPend-
> > >>>>                      LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1,
> Exit
> > Latency L0s <64ns, L1 <1us
> > >>>>                              ClockPM- Surprise- LLActRep- BwNot-
> > >>>>                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
> > >>>>                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> > >>>>                      LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
> > DLActive- BWMgmt- ABWMgmt-
> > >>>>                      DevCap2: Completion Timeout: Not Supported,
> TimeoutDis-,
> > LTR-, OBFF Not Supported
> > >>>>                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-,
> > LTR-, OBFF Disabled
> > >>>>                      LnkSta2: Current De-emphasis Level: -6dB,
> > EqualizationComplete-, EqualizationPhase1-
> > >>>>                               EqualizationPhase2-, EqualizationPhase3-,
> > LinkEqualizationRequest-
> > >>>>              Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> > >>>>                      Address: 00000000fee0100c  Data: 41d1
> > >>>>              Capabilities: [100 v1] Vendor Specific Information: ID=0001
> Rev=1
> > Len=010 <?>
> > >>>>              Kernel driver in use: snd_hda_intel
> > >>>>
> > >>>>
> > >>>> Grüße,
> > >>>>   Thomas
> > >> Thomas can you provide output of lspci -t
> > >>
> > >> Also did you had a chance to test my ugly patch ?
> > >>
> > >> Cheers,
> > >> Jérôme
> > > If my ugly patch works does this quirk also work ?
> > >

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy
  2014-04-28  8:09           ` Thomas Schwinge
@ 2014-06-16  7:11             ` Thomas Schwinge
  0 siblings, 0 replies; 82+ messages in thread
From: Thomas Schwinge @ 2014-06-16  7:11 UTC (permalink / raw)
  To: Jerome Glisse
  Cc: Bjorn Helgaas, linux-pci, Johannes Weiner, Mel Gorman,
	Rik van Riel, Andrea Arcangeli, Zlatko Calusic, Minchan Kim,
	linux-mm, linux-kernel, Andrew Morton, Alex Deucher,
	Christian König, dri-devel

[-- Attachment #1: Type: text/plain, Size: 674 bytes --]

Hi!

On Mon, 28 Apr 2014 10:09:17 +0200, I wrote:
> On Sun, 27 Apr 2014 15:55:29 -0400, Jerome Glisse <j.glisse@gmail.com> wrote:
> > If my ugly patch works does this quirk also work ?
> 
> Unfortunately they both don't; see my other email,
> <http://news.gmane.org/find-root.php?message_id=%3C87sioxq3rx.fsf%40schwinge.name%3E>.

> [...] hacked around as follows: [...]

> If needed, I can try to capture more data, but someone who has knowledge
> of PCI bus architecture and Linux kernel code (so, not me), might
> probably already see what's wrong.

The problem "solved itself": the machine recently died of hardware
failure.  ;-|


Grüße,
 Thomas

[-- Attachment #2: Type: application/pgp-signature, Size: 472 bytes --]

^ permalink raw reply	[flat|nested] 82+ messages in thread

end of thread, other threads:[~2014-06-16  7:12 UTC | newest]

Thread overview: 82+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-02 15:37 [patch v2 0/3] mm: improve page aging fairness between zones/nodes Johannes Weiner
2013-08-02 15:37 ` Johannes Weiner
2013-08-02 15:37 ` [patch v2 1/3] mm: vmscan: fix numa reclaim balance problem in kswapd Johannes Weiner
2013-08-02 15:37   ` Johannes Weiner
2013-08-07 14:15   ` Mel Gorman
2013-08-07 14:15     ` Mel Gorman
2013-08-02 15:37 ` [patch v2 2/3] mm: page_alloc: rearrange watermark checking in get_page_from_freelist Johannes Weiner
2013-08-02 15:37   ` Johannes Weiner
2013-08-07 14:20   ` Mel Gorman
2013-08-07 14:20     ` Mel Gorman
2013-08-02 15:37 ` [patch v2 3/3] mm: page_alloc: fair zone allocator policy Johannes Weiner
2013-08-02 15:37   ` Johannes Weiner
2013-08-02 17:51   ` Rik van Riel
2013-08-02 17:51     ` Rik van Riel
2013-08-05  1:15   ` Minchan Kim
2013-08-05  1:15     ` Minchan Kim
2013-08-05  3:43     ` Johannes Weiner
2013-08-05  3:43       ` Johannes Weiner
2013-08-05  4:48       ` Minchan Kim
2013-08-05  4:48         ` Minchan Kim
2013-08-05  5:01         ` Johannes Weiner
2013-08-05  5:01           ` Johannes Weiner
2013-08-05 10:34   ` Wanpeng Li
2013-08-05 10:34   ` Wanpeng Li
2013-08-05 11:34     ` Andrea Arcangeli
2013-08-05 11:34       ` Andrea Arcangeli
2013-08-05 13:11       ` Wanpeng Li
2013-08-05 13:11       ` Wanpeng Li
2013-08-07 14:58   ` Mel Gorman
2013-08-07 14:58     ` Mel Gorman
2013-08-07 15:37     ` Johannes Weiner
2013-08-07 15:37       ` Johannes Weiner
2013-08-08  4:16       ` Johannes Weiner
2013-08-08  4:16         ` Johannes Weiner
2013-08-08  9:21         ` Mel Gorman
2013-08-08  9:21           ` Mel Gorman
2013-08-09 18:45         ` Rik van Riel
2013-08-09 18:45           ` Rik van Riel
2013-08-16 17:07         ` Kevin Hilman
2013-08-16 17:17         ` Kevin Hilman
2013-08-16 20:18           ` Johannes Weiner
2013-08-16 20:18             ` Johannes Weiner
2013-08-16 20:18             ` Johannes Weiner
2013-08-16 21:24             ` Stephen Warren
2013-08-16 21:24               ` Stephen Warren
2013-08-16 21:24               ` Stephen Warren
2013-08-16 21:52             ` Kevin Hilman
2013-08-16 21:52               ` Kevin Hilman
2013-08-16 21:52               ` Kevin Hilman
2013-08-19  0:48               ` Stephen Rothwell
2013-08-19  0:48                 ` Stephen Rothwell
2014-04-02 14:26   ` Thomas Schwinge
2014-04-02 14:26     ` Thomas Schwinge
2014-04-24 13:37     ` radeon: screen garbled after page allocator change, was: " Johannes Weiner
2014-04-24 13:37       ` Johannes Weiner
2014-04-24 13:37       ` Johannes Weiner
2014-04-25 21:47       ` Jerome Glisse
2014-04-25 21:47         ` Jerome Glisse
2014-04-25 21:47         ` Jerome Glisse
2014-04-25 21:50         ` Jerome Glisse
2014-04-25 21:50           ` Jerome Glisse
2014-04-25 23:03           ` Jerome Glisse
2014-04-25 23:03             ` Jerome Glisse
2014-04-25 23:03             ` Jerome Glisse
2014-04-28  8:03             ` Thomas Schwinge
2014-04-28  9:09               ` Thomas Schwinge
2014-04-27  3:31       ` Jerome Glisse
2014-04-27  3:31         ` Jerome Glisse
2014-04-27  3:31         ` Jerome Glisse
2014-04-27 19:55         ` Jerome Glisse
2014-04-27 19:55           ` Jerome Glisse
2014-04-27 19:55           ` Jerome Glisse
2014-04-28  7:30           ` Christian König
2014-04-28  7:30             ` Christian König
2014-04-28 12:51             ` Deucher, Alexander
2014-04-28 12:51               ` Deucher, Alexander
2014-04-28 12:52             ` Deucher, Alexander
2014-04-28 12:52               ` Deucher, Alexander
2014-04-28  8:09           ` Thomas Schwinge
2014-06-16  7:11             ` Thomas Schwinge
2013-08-02 19:59 ` [patch v2 0/3] mm: improve page aging fairness between zones/nodes Andrea Arcangeli
2013-08-02 19:59   ` Andrea Arcangeli

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.