From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 15 May 2018 14:09:39 +0200 From: Peter Zijlstra To: Boaz Harrosh Cc: Matthew Wilcox , Jeff Moyer , Andrew Morton , "Kirill A. Shutemov" , linux-kernel , linux-fsdevel , "linux-mm@kvack.org" , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, Dave Hansen , Rik van Riel , Jan Kara , Matthew Wilcox , Amit Golander Subject: Re: [PATCH] mm: Add new vma flag VM_LOCAL_CPU Message-ID: <20180515120939.GA12217@hirez.programming.kicks-ass.net> References: <0efb5547-9250-6b6c-fe8e-cf4f44aaa5eb@netapp.com> <20180514191551.GA27939@bombadil.infradead.org> <7ec6fa37-8529-183d-d467-df3642bcbfd2@netapp.com> <20180515004137.GA5168@bombadil.infradead.org> <20180515111159.GA31599@bombadil.infradead.org> <6999e635-e804-99d0-12fc-c13ff3e9ca58@netapp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6999e635-e804-99d0-12fc-c13ff3e9ca58@netapp.com> Sender: owner-linux-mm@kvack.org List-ID: On Tue, May 15, 2018 at 02:41:41PM +0300, Boaz Harrosh wrote: > On 15/05/18 14:11, Matthew Wilcox wrote: > > You're still thinking about this from the wrong perspective. If you > > were writing a program to attack this facility, how would you do it? > > It's not exactly hard to leak one pointer's worth of information. > > > > That would be very hard. Because that program would: > - need to be root > - need to start and pretend it is zus Server with the all mount > thread thing, register new filesystem, grab some pmem devices. > - Mount the said filesystem on said pmem. Create core-pinned ZT threads > for all CPUs, start accepting IO. > - And only then it can start leaking the pointer and do bad things. > The bad things it can do to the application, not to the Kernel. No I think you can do bad things to the kernel at that point. Consider it populating the TLBs on the 'wrong' CPU by 'inadvertenly' touching 'random' memory. Then cause an invalidation and get the page re-used for kernel bits. Then access that page through the 'stale' TLB entry we still have on the 'wrong' CPU and corrupt kernel data.