From: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
To: Minchan Kim <minchan@kernel.org>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
Nitin Gupta <ngupta@vflare.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCHv4 00/10] add on-demand device creation
Date: Thu, 7 May 2015 21:09:44 +0900 [thread overview]
Message-ID: <20150507120944.GA681@swordfish> (raw)
In-Reply-To: <20150507074159.GA3624@blaptop>
On (05/07/15 16:41), Minchan Kim wrote:
>
> Unfortunately, I can reproduce in a few second with this patch.
>
so I googled a bit, and it seems that zram is not the only one who suffered
from add_disk() behaviour.
http://www.spinics.net/lists/dm-devel/msg23465.html
and there is
http://git.kernel.dk/?p=linux-block.git;a=commitdiff;h=6cd18e71;hp=393a33970540ac6a2c894b0d6ef3f5d485860884
that looks interesting:
|
| Because of the peculiar way that md devices are created (automatically
| when the device node is opened), a new device can be created and
| registered immediately after the
| blk_unregister_region(disk_devt(disk), disk->minors);
| call in del_gendisk().
|
| Therefore it is important that all visible artifacts of the previous
| device are removed before this call. In particular, the 'bdi'.
|
basically, it destroys bdi during queue cleanup.
> moved the
> device_unregister(bdi->dev);
> call from bdi_unregister() to bdi_destroy() it has been quite easy to
> lose a race and have a new (e.g.) "md127" be created after the
> blk_unregister_region() call and before bdi_destroy() is ultimately
> called by the final 'put_disk', which must come after del_gendisk().
>
> The new device finds that the bdi name is already registered in sysfs
> and complains
>
>> [ 9627.630029] WARNING: CPU: 18 PID: 3330 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x5a/0x70()
>> [ 9627.630032] sysfs: cannot create duplicate filename '/devices/virtual/bdi/9:127'
>
> We can fix this by moving the bdi_destroy() call out of
> blk_release_queue() (which can happen very late when a refcount
> reaches zero) and into blk_cleanup_queue() - which happens exactly when the md
> device driver calls it.
that does look like something that can happen in our case.
and here:
http://www.spinics.net/lists/dm-devel/msg23415.html
is there any chance to ask you to test with these patches (no rush, take your time)?
as I'm still unable to reproduce it locally.
-ss
next prev parent reply other threads:[~2015-05-07 12:10 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-04 12:38 [PATCHv4 00/10] add on-demand device creation Sergey Senozhatsky
2015-05-04 12:38 ` [PATCHv4 01/10] zram: add `compact` sysfs entry to documentation Sergey Senozhatsky
2015-05-04 12:38 ` [PATCHv4 02/10] zram: cosmetic ZRAM_ATTR_RO code formatting tweak Sergey Senozhatsky
2015-05-04 12:38 ` [PATCHv4 03/10] zram: use idr instead of `zram_devices' array Sergey Senozhatsky
2015-05-04 12:38 ` [PATCHv4 04/10] zram: reorganize code layout Sergey Senozhatsky
2015-05-04 12:38 ` [PATCHv4 05/10] zram: remove max_num_devices limitation Sergey Senozhatsky
2015-05-04 12:38 ` [PATCHv4 06/10] zram: report every added and removed device Sergey Senozhatsky
2015-05-04 12:38 ` [PATCHv4 07/10] zram: trivial: correct flag operations comment Sergey Senozhatsky
2015-05-04 12:39 ` [PATCHv4 08/10] zram: return zram device_id from zram_add() Sergey Senozhatsky
2015-05-04 12:39 ` [PATCHv4 09/10] zram: close race by open overriding Sergey Senozhatsky
2015-05-04 12:39 ` [PATCHv4 10/10] zram: add dynamic device add/remove functionality Sergey Senozhatsky
2015-05-06 5:01 ` [PATCHv4 00/10] add on-demand device creation Minchan Kim
2015-05-06 5:25 ` Sergey Senozhatsky
2015-05-06 6:52 ` Minchan Kim
2015-05-06 7:07 ` Sergey Senozhatsky
2015-05-06 7:28 ` Minchan Kim
2015-05-06 8:10 ` Sergey Senozhatsky
2015-05-06 8:20 ` Minchan Kim
2015-05-07 0:33 ` Sergey Senozhatsky
2015-05-07 7:41 ` Minchan Kim
2015-05-07 12:09 ` Sergey Senozhatsky [this message]
2015-05-07 13:04 ` Sergey Senozhatsky
2015-05-07 15:11 ` Minchan Kim
2015-05-08 0:15 ` Sergey Senozhatsky
2015-05-10 8:47 ` Sergey Senozhatsky
2015-05-06 5:31 ` Sergey Senozhatsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150507120944.GA681@swordfish \
--to=sergey.senozhatsky@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=minchan@kernel.org \
--cc=ngupta@vflare.org \
--cc=sergey.senozhatsky.work@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.