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.