Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754775AbdC1IQx (ORCPT ); Tue, 28 Mar 2017 04:16:53 -0400 Received: from mail-qt0-f170.google.com ([209.85.216.170]:35468 "EHLO mail-qt0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754664AbdC1IQw (ORCPT ); Tue, 28 Mar 2017 04:16:52 -0400 MIME-Version: 1.0 In-Reply-To: <20170327171817.GN4781@twin.jikos.cz> References: <20170327171817.GN4781@twin.jikos.cz> From: Denis Kirjanov Date: Tue, 28 Mar 2017 11:16:35 +0300 Message-ID: Subject: Re: __link_block_group uses GFP_KERNEL To: dsterba@suse.cz, Denis Kirjanov , Jeff Mahoney , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, chris.mason@fusionio.com Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1154 Lines: 35 On 3/27/17, David Sterba wrote: > On Sat, Mar 25, 2017 at 09:48:28AM +0300, Denis Kirjanov wrote: >> On 3/25/17, Jeff Mahoney wrote: >> > On 3/24/17 5:02 AM, Denis Kirjanov wrote: >> >> Hi guys, >> >> >> >> Looks like that current code does GFP_KERNEL allocation inside >> >> __link_block_group. >> >> the function invokes kobject_add and internally creates sysfs files >> >> with the GFP_KERNEL flag set. >> > >> > Yep, that's a bug. >> > >> >> But since do_chunk_alloc executes insides the btrfs transaction it's >> >> not allowed to sleep. >> > >> > It's allowed to sleep but isn't allowed to do reclaim that involves >> > file >> > system writeback. Michal Hocko's allocation context idea would fix >> > this, but it's not there yet, so we'll need to defer the kobject_add >> > until we can use GFP_KERNEL. >> >> Ok, I see. Can you point out to the initial patchset? > > https://lwn.net/Articles/716323/ > > Fixing this properly is a lot of work so we might need to add a > temporary workaround, as Jeff suggests, to move calling into sysfs to a > later time. > Care to send a patch? Or I can dig a bit. Thanks!