From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760508AbbCDIgJ (ORCPT ); Wed, 4 Mar 2015 03:36:09 -0500 Received: from mail-pd0-f176.google.com ([209.85.192.176]:35105 "EHLO mail-pd0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760488AbbCDIgD (ORCPT ); Wed, 4 Mar 2015 03:36:03 -0500 Date: Wed, 4 Mar 2015 17:36:07 +0900 From: Sergey Senozhatsky To: Minchan Kim Cc: Sergey Senozhatsky , Sergey Senozhatsky , Andrew Morton , Nitin Gupta , linux-kernel@vger.kernel.org Subject: Re: [PATCH 5/8] zram: add dynamic device add/remove functionality Message-ID: <20150304083607.GE574@swordfish> References: <1425386990-6339-1-git-send-email-sergey.senozhatsky@gmail.com> <1425386990-6339-6-git-send-email-sergey.senozhatsky@gmail.com> <20150304071030.GD5418@blaptop> <20150304072913.GA574@swordfish> <20150304081951.GD574@swordfish> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150304081951.GD574@swordfish> 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 (03/04/15 17:19), Sergey Senozhatsky wrote: > hm... that actually doesn't look so hard. > > all I need to do is just change zram_add attr to RW (or create a new RO > attribute `zram_auto_add', or whatever) and treat read access to that > zram_add_read() or zram_auto_add_read() attr as (atomic operation): > -- generate new device_id X > -- create corresponding zramX device > -- return that X as char *text to user space (or error). the > same way we sprintf() stats. > > what do you think? I'll play with it. > that will do the trick. testing simple patch: # cat /sys/class/zram-control/zram_add 1 # cat /sys/class/zram-control/zram_add 2 # cat /sys/class/zram-control/zram_add 3 # cat /sys/class/zram-control/zram_add 4 # cat /sys/class/zram-control/zram_add 5 dmesg: [14339.063075] zram: Added device: zram1 [14339.972633] zram: Added device: zram2 [14340.626564] zram: Added device: zram3 [14341.242134] zram: Added device: zram4 [14341.850853] zram: Added device: zram5 try to add already existing device_id # echo 3 > /sys/class/zram-control/zram_add -bash: echo: write error: File exists zram_add() error propogation to user space (-ENOMEM in this case) # cat /sys/class/zram-control/zram_add cat: /sys/class/zram-control/zram_add: Cannot allocate memory will send out new patch set later today. -ss