From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx110.postini.com [74.125.245.110]) by kanga.kvack.org (Postfix) with SMTP id 0F6476B0002 for ; Mon, 28 Jan 2013 08:26:27 -0500 (EST) Received: by mail-wi0-f172.google.com with SMTP id o1so1401022wic.11 for ; Mon, 28 Jan 2013 05:26:26 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <51065FD4.6090200@redhat.com> References: <1359333506-13599-1-git-send-email-minchan@kernel.org> <51065FD4.6090200@redhat.com> Date: Mon, 28 Jan 2013 15:26:26 +0200 Message-ID: Subject: Re: [RESEND PATCH v5 1/4] zram: Fix deadlock bug in partial write From: Pekka Enberg Content-Type: text/plain; charset=ISO-8859-1 Sender: owner-linux-mm@kvack.org List-ID: To: Jerome Marchand Cc: Minchan Kim , Greg Kroah-Hartman , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Dan Magenheimer , Nitin Gupta , Konrad Rzeszutek Wilk , Seth Jennings , stable@vger.kernel.org On Mon, Jan 28, 2013 at 1:24 PM, Jerome Marchand wrote: > On 01/28/2013 08:16 AM, Pekka Enberg wrote: >> On Mon, Jan 28, 2013 at 2:38 AM, Minchan Kim wrote: >>> Now zram allocates new page with GFP_KERNEL in zram I/O path >>> if IO is partial. Unfortunately, It may cuase deadlock with >> >> s/cuase/cause/g >> >>> reclaim path so this patch solves the problem. >> >> It'd be nice to know about the problem in more detail. I'm also >> curious on why you decided on GFP_ATOMIC for the read path and >> GFP_NOIO in the write path. > > This is because we're holding a kmap_atomic page in the read path. Okay, so that's about partial *reads* and not even mentioned in the changelog, no? AFAICT, you could rearrange the code in zram_bvec_read() as follows: if (is_partial_io(bvec)) /* Use a temporary buffer to decompress the page */ uncmem = kmalloc(PAGE_SIZE, GFP_KERNEL); else { uncmem = user_mem = kmap_atomic(page); } and avoid the GFP_ATOMIC allocation. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org