lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 1 Nov 2008 10:16:14 -0700 (PDT)
From:	Linus Torvalds <torvalds@...ux-foundation.org>
To:	Jonathan Corbet <corbet@....net>
cc:	Yinghai Lu <yinghai@...nel.org>, Ingo Molnar <mingo@...e.hu>,
	Robert Hancock <hancockr@...w.ca>,
	e1000-devel@...ts.sourceforge.net,
	LKML <linux-kernel@...r.kernel.org>,
	Steven Rostedt <rostedt@...dmis.org>
Subject: Re: 2.6.28-rc2 hates my e1000e



On Sat, 1 Nov 2008, Jonathan Corbet wrote:

> Networking is fine in the absence of NFS.  I retried things and
> stress-tested it in a few ways with no trouble.  I think your last patch
> fixes the network card just fine.
> 
> Then I tried NFS again, watching more closely this time around.
> Everything locks up.  In fact, the soft lockup watchdog starts to
> scream:

Interesting. I wonder why it happens for NFS, but not apparently for all 
your other modules.

It does look very much like a ftrace issue, though, not NFS or 
network-related. Steven? Is this something that you are aware of already, 
with what looks like a lockup in ftrace_record_ip()?

> So methinks I'll add Steven to the Cc on this one :)  Looks like a
> different problem for sure.

Agreed. Looks unlikely to be related.

> > Oh, and getting the old (2.6.27) and new (2.6.28-rc2+patch) 
> > /proc/iomem would be nice.
> 
> For completeness, here they are.

Wow. Your BIOS really does screw up massively. The one reserved region 
difference is:

Old kernel (with lots of resources just re-assigned elsewhere):

> e0000000-fed003ff : reserved
>   fec00000-fec00fff : IOAPIC 0
>   fed00000-fed003ff : HPET 0

New kernel:

> e0000000-fed003ff : reserved
>   fe800000-fe8fffff : PCI Bus 0000:01
>   fe9d9b00-fe9d9bff : 0000:00:1f.3
>   fe9d9c00-fe9d9fff : 0000:00:1a.7
>     fe9d9c00-fe9d9fff : ehci_hcd
>   fe9da000-fe9dafff : 0000:00:03.3
>   fe9db000-fe9dbfff : 0000:00:19.0
>     fe9db000-fe9dbfff : e1000e
>   fe9dc000-fe9dffff : 0000:00:1b.0
>     fe9dc000-fe9dffff : ICH HD audio
>   fe9e0000-fe9fffff : 0000:00:19.0
>     fe9e0000-fe9fffff : e1000e
>   fea00000-fea7ffff : 0000:00:02.0
>   fea80000-feafffff : 0000:00:02.1
>   feb00000-febfffff : 0000:00:02.0
>   fec00000-fec00fff : IOAPIC 0
>   fed00000-fed003ff : HPET 0

ie the BIOS had marked a _lot_ of PCI allocations that it did as being 
reserved, and there was actually no partial overlap in your case. The old 
kernel would end up re-assigning all the resources (except for the magic 
non-PCI-BAR ones like the IOAPIC and the HPET) because of that BIOS 
reservation.

I do think that the new layout looks better, and I also think that 
"insert_resource_expand_to_fit()" did a much better and more logical job 
than "reserve_region_with_split()" did. So it looks like an improvement. I 
wonder who else with have breakage though - EVERY SINGLE TIME we do 
resource allocation cleanups/fixes, some odd firmware inevtiably breaks.

It's really sad. I worry that the old-style reserved handling hid bus 
where the firmware had assigned resources to insane locations (and then 
the reserved area code ended up forcing us to re-assign them to better 
ones). But my second patch at least -conceptually- makes sense, and 
obviously fixes your case, so I'm inclined to just commit it.

And either of the above two resource listings look saner than the plain 
-rc2 version (using reserve_region_with_split):

> e0000000-fe7fffff : reserved
> fe800000-fe8fffff : PCI Bus 0000:01
>  fe800000-fe8fffff : reserved
> fe900000-fe9d9aff : reserved
> fe9d9b00-fe9d9bff : 0000:00:1f.3
>  fe9d9b00-fe9d9bff : reserved
> fe9d9c00-fe9d9fff : 0000:00:1a.7
>  fe9d9c00-fe9d9fff : reserved
> fe9da000-fe9dafff : 0000:00:03.3
>  fe9da000-fe9dafff : reserved
> fe9db000-fe9dbfff : 0000:00:19.0
>  fe9db000-fe9dbfff : reserved
> fe9dc000-fe9dffff : 0000:00:1b.0
>  fe9dc000-fe9dffff : reserved
> fe9e0000-fe9fffff : 0000:00:19.0
>  fe9e0000-fe9fffff : reserved
> fea00000-fea7ffff : 0000:00:02.0
>  fea00000-fea7ffff : reserved
> fea80000-feafffff : 0000:00:02.1
>  fea80000-feafffff : reserved
> feb00000-febfffff : 0000:00:02.0
>  feb00000-febfffff : reserved
> fec00000-fed003ff : reserved
>  fec00000-fec00fff : IOAPIC 0
>  fed00000-fed003ff : HPET 0

.. which is just really messy, but is the same e0000000-fed003ff
"reserved" e820 entry just split and moved into each resource. 

I hate firmware. 

			Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists