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  linux-cve-announce  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]
Message-ID: <alpine.LFD.0.999.0709211212130.16478@woody.linux-foundation.org>
Date:	Fri, 21 Sep 2007 12:21:04 -0700 (PDT)
From:	Linus Torvalds <torvalds@...ux-foundation.org>
To:	Christoph Lameter <clameter@....com>
cc:	"Siddha, Suresh B" <suresh.b.siddha@...el.com>,
	akpm@...ux-foundation.org, ak@...e.de,
	linux-kernel@...r.kernel.org, tony.luck@...el.com,
	asit.k.mallick@...el.com
Subject: Re: x86_64: potential critical issue with quicklists and page table
 pages



On Fri, 21 Sep 2007, Christoph Lameter wrote:
> 
> The final flush does only check if there are too many pages on the
> quicklists. Otherwise the quicklist is not dumped/freed (unlike the
> mmu_gather list) but kept for the following page table page allocations
> since we have cache hot cpu objects there.

Yeah, and the whole thing seems totally bogus. It totally depends on 
mmu_gather doing everything right (which very much includes the dependency 
on mmu gathering disabling preempt).

For exmaple, if we were to go back to the original small tlb_gather with a 
simple quicklist on the stack, rather than the per-cpu datastructure, the 
quicklists would immediately break horribly - simply because they are 
incorrectly now depending on the internal semantics of that tlb-gather.

As it is, the quicklists try to be something separate, but by virtue of 
being separate, they will always be buggy.

The only way to fix it would be to integrate the quicklist stuff *with* 
the mmu_gather stuff, so that these kinds of implementation issues are 
explicitly shown in the relationship, instead of havign two "independent" 
pieces of code where one piece very subtly depends on the exact 
implementation of the other.

		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

Powered by Openwall GNU/*/Linux Powered by OpenVZ