Re: [PATCH v2 26/28] block: Remove zone write locking

Bart Van Assche
2024-03-25T22:27:45Z

On 3/24/24 21:44, Damien Le Moal wrote:
> Zone write locking is now unused and replaced with zone write plugging.
> Remove all code that was implementing zone write locking, that is, the
> various helper functions controlling request zone write locking and
> the gendisk attached zone bitmaps.
>
> The "zone_wlock" mq-debugfs entry that was listing zones that are
> write-locked is replaced with the zone_wplugs entry which lists
> the zones that currently have a write plug allocated. The information
> provided is: the zone number, the zone write plug flags, the zone write
> plug write pointer offset and the number of BIOs currently waiting for
> execution in the zone write plug BIO list.

Shouldn't this patch be split - one patch that adds the new debugfs
entry and a second patch that removes the code that is no longer used?

> + rcu_read_lock();
> + for (i = 0; i < disk_zone_wplugs_hash_size(disk); i++) {
> + hlist_for_each_entry_rcu(zwplug,
> + &disk->zone_wplugs_hash[i], node) {
> + spin_lock_irqsave(&zwplug->lock, flags);
> + seq_printf(m, "%u 0x%x %u %u %u\n",
> + zwplug->zone_no,
> + zwplug->flags,
> + atomic_read(&zwplug->ref),
> + zwplug->wp_offset,
> + bio_list_size(&zwplug->bio_list));
> + spin_unlock_irqrestore(&zwplug->lock, flags);
> + }
> + }
> + rcu_read_unlock();

Can calling seq_printf() with interrupts disabled cause interrupt
latency issues? Has it been considered to collect the information that
will be printed with interrupts disabled and to re-enable interrupts
before seq_printf() is called?

Thanks,

Bart.