From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752970AbcELNxH (ORCPT ); Thu, 12 May 2016 09:53:07 -0400 Received: from mail-qk0-f194.google.com ([209.85.220.194]:33639 "EHLO mail-qk0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752551AbcELNxF (ORCPT ); Thu, 12 May 2016 09:53:05 -0400 Date: Thu, 12 May 2016 15:52:53 +0200 From: Jerome Glisse To: Nicolas Morey-Chaisemartin Cc: Hugh Dickins , Mel Gorman , Andrea Arcangeli , "Kirill A. Shutemov" , "Kirill A. Shutemov" , Alex Williamson , One Thousand Gnomes , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [Question] Missing data after DMA read transfer - mm issue with transparent huge page? Message-ID: <20160512135253.GA17039@gmail.com> References: <15edf085-c21b-aa1c-9f1f-057d17b8a1a3@morey-chaisemartin.com> <20160503101153.GA7241@gmail.com> <07619be9-e812-5459-26dd-ceb8c6490520@morey-chaisemartin.com> <20160510100104.GA18820@gmail.com> <60fc4f9f-fc8e-84a4-da84-a3c823b9b5bb@morey-chaisemartin.com> <20160511145141.GA5288@gmail.com> <432180fd-2faf-af37-7d99-4e24ab263d50@morey-chaisemartin.com> <20160512093632.GA15092@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, May 12, 2016 at 03:30:24PM +0200, Nicolas Morey-Chaisemartin wrote: > Le 05/12/2016 à 11:36 AM, Jerome Glisse a écrit : > > On Thu, May 12, 2016 at 08:07:59AM +0200, Nicolas Morey-Chaisemartin wrote: > >> > >> Le 05/11/2016 à 04:51 PM, Jerome Glisse a écrit : > >>> On Wed, May 11, 2016 at 01:15:54PM +0200, Nicolas Morey Chaisemartin wrote: > >>>> Le 05/10/2016 à 12:01 PM, Jerome Glisse a écrit : > >>>>> On Tue, May 10, 2016 at 09:04:36AM +0200, Nicolas Morey Chaisemartin wrote: > >>>>>> Le 05/03/2016 à 12:11 PM, Jerome Glisse a écrit : > >>>>>>> On Mon, May 02, 2016 at 09:04:02PM -0700, Hugh Dickins wrote: > >>>>>>>> On Fri, 29 Apr 2016, Nicolas Morey Chaisemartin wrote: > >>>> [...] > >>>>>> Hi, > >>>>>> > >>>>>> I backported the patch to 3.10 (had to copy paste pmd_protnone defitinition from 4.5) and it's working ! > >>>>>> I'll open a ticket in Redhat tracker to try and get this fixed in RHEL7. > >>>>>> > >>>>>> I have a dumb question though: how can we end up in numa/misplaced memory code on a single socket system? > >>>>>> > >>>>> This patch is not a fix, do you see bug message in kernel log ? Because if > >>>>> you do that it means we have a bigger issue. > >>>>> > >>>>> You did not answer one of my previous question, do you set get_user_pages > >>>>> with write = 1 as a paremeter ? > >>>>> > >>>>> Also it would be a lot easier if you were testing with lastest 4.6 or 4.5 > >>>>> not RHEL kernel as they are far appart and what might looks like same issue > >>>>> on both might be totaly different bugs. > >>>>> > >>>>> If you only really care about RHEL kernel then open a bug with Red Hat and > >>>>> you can add me in bug-cc > >>>>> > >>>>> Cheers, > >>>>> Jérôme > >>>> I finally managed to get a proper setup. > >>>> I build a vanilla 4.5 kernel from git tree using the Centos7 config, my test fails as usual. > >>>> I applied your patch, rebuild => still fails and no new messages in dmesg. > >>>> > >>>> Now that I don't have to go through the RPM repackaging, I can try out things much quicker if you have any ideas. > >>>> > >>> Still an issue if you boot with transparent_hugepage=never ? > >>> > >>> Also to simplify investigation force write to 1 all the time no matter what. > >>> > >>> Cheers, > >>> Jérôme > >> With transparent_hugepage=never I can't see the bug anymore. > >> > > Can you test https://patchwork.kernel.org/patch/9061351/ with 4.5 > > (does not apply to 3.10) and without transparent_hugepage=never > > > > Jérôme > > Fails with 4.5 + this patch and with 4.5 + this patch + yours > There must be some bug in your code, we have upstream user that works fine with the above combination (see drivers/vfio/vfio_iommu_type1.c) i suspect you might be releasing the page pin too early (put_page()). If you really believe it is bug upstream we would need a dumb kernel module that does gup like you do and that shows the issue. Right now looking at code (assuming above patches applied) i can't see anything that can go wrong with THP. Cheers, Jérôme