From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.codeaurora.org ([198.145.29.96]:46972 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752811AbdHNLOB (ORCPT ); Mon, 14 Aug 2017 07:14:01 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Mon, 14 Aug 2017 16:44:00 +0530 From: ankijain@codeaurora.org To: linux-fsdevel@vger.kernel.org Cc: linux-fsdevel-owner@vger.kernel.org Subject: Re: Page fault while link_path_walk for path_len > 4060 bytes In-Reply-To: <54083a824d6705a93d972ca5ef3a7b35@codeaurora.org> References: <08e7e3332dc86c535dd2961ac1cde0b5@codeaurora.org> <54083a824d6705a93d972ca5ef3a7b35@codeaurora.org> Message-ID: <3958983ccec4aca494bf72c397f34bfa@codeaurora.org> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Hi linux-fsdevel could you please look at this issue or suggest how we can proceed further. Thanks, On 2017-08-07 17:48, ankijain@codeaurora.org wrote: > On 2017-08-07 11:52, ankijain@codeaurora.org wrote: >> Hi >> >> We are facing a issue while creating the directories up-to maximum >> depth. >> While doing this, page fault occurs some times if PATH_LEN is near to >> page boundary. >> During hash_name() calculation inside link_path_walk(), >> load_unaligned_zeropad() is causing page fault as it tries to access >> next page data(which is not mapped). >> We have already taken a lock(rcu_read_lock) in path_init() and as a >> part of page fault it checks if process can sleep (might_sleep), which >> results in panic as rcu_read_lock is already taken in path_init(). >> >> One observation : Panic happens only when page(which contain the >> path_name and length > 4060) is the last page of the slab memory. >> >> Test Case detail: >> Kernel version : 4.4 >> We are following stress-ng test. >> https://github.com/ColinIanKing/stress-ng >> >> 1. dirdeep for creating directory upto maximum depth. >> 2. vm for memory allocation in backgroud. >> >> Above 2 test cases are running simultaneously and it takes ~3-4 hours >> to reproduce this issue. >> >> Pasting comment section for load_unaligned_zeropad(): >> /* >> * Load an unaligned word from kernel space. >> * >> * In the (very unlikely) case of the word being a page-crosser >> * and the next page not being mapped, take the exception and >> * return zeroes in the non-existing part. >> */ >> >> Wanted to confirm if this "very unlikely case" mentioned above is >> pointing to the same issue ? >> Also let us know if this is a known issue and if some fix is already >> available. If not, please suggest how we can proceed further. >> >> Appreciate your help. Thanks in advance!! >> >> Regards, >> Ankit Jain >> Qualcomm India Private Limited, on behalf of Qualcomm Innovation >> Center, Inc. >> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a >> Linux Foundation Collaborative Project