Message ID | 20240930085302.1558217-2-yukuai1@huaweicloud.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | blk-cgroup: don't abuse bdi in blk-cgroup | expand |
Hello, On Mon, Sep 30, 2024 at 04:52:58PM +0800, Yu Kuai wrote: > +static inline bool blkg_print_dev_name(struct seq_file *sf, > + struct blkcg_gq *blkg) > +{ > + struct gendisk *disk = blkg->q->disk; > + > + if (!disk) > + return false; > + > + seq_printf(sf, "%u:%u", disk->major, disk->first_minor); > + return true; > +} > + I wonder whether we just should add a name field to disk. Thanks.
Hi, 在 2024/10/01 1:11, Tejun Heo 写道: > Hello, > > On Mon, Sep 30, 2024 at 04:52:58PM +0800, Yu Kuai wrote: >> +static inline bool blkg_print_dev_name(struct seq_file *sf, >> + struct blkcg_gq *blkg) >> +{ >> + struct gendisk *disk = blkg->q->disk; >> + >> + if (!disk) >> + return false; >> + >> + seq_printf(sf, "%u:%u", disk->major, disk->first_minor); >> + return true; >> +} >> + > > I wonder whether we just should add a name field to disk. > Of course we can, however, I'm not sure if this is better, because this field is not used in the fast path. Thanks, Kuai > Thanks. >
On Tue, Oct 08, 2024 at 09:39:05AM +0800, Yu Kuai wrote: > Hi, > > 在 2024/10/01 1:11, Tejun Heo 写道: > > Hello, > > > > On Mon, Sep 30, 2024 at 04:52:58PM +0800, Yu Kuai wrote: > > > +static inline bool blkg_print_dev_name(struct seq_file *sf, > > > + struct blkcg_gq *blkg) > > > +{ > > > + struct gendisk *disk = blkg->q->disk; > > > + > > > + if (!disk) > > > + return false; > > > + > > > + seq_printf(sf, "%u:%u", disk->major, disk->first_minor); > > > + return true; > > > +} > > > + > > > > I wonder whether we just should add a name field to disk. > > > > Of course we can, however, I'm not sure if this is better, because > this field is not used in the fast path. Struct gendisk does have a (disk_)name field aleady.
Hi, 在 2024/10/08 13:01, Christoph Hellwig 写道: > On Tue, Oct 08, 2024 at 09:39:05AM +0800, Yu Kuai wrote: >> Hi, >> >> 在 2024/10/01 1:11, Tejun Heo 写道: >>> Hello, >>> >>> On Mon, Sep 30, 2024 at 04:52:58PM +0800, Yu Kuai wrote: >>>> +static inline bool blkg_print_dev_name(struct seq_file *sf, >>>> + struct blkcg_gq *blkg) >>>> +{ >>>> + struct gendisk *disk = blkg->q->disk; >>>> + >>>> + if (!disk) >>>> + return false; >>>> + >>>> + seq_printf(sf, "%u:%u", disk->major, disk->first_minor); >>>> + return true; >>>> +} >>>> + >>> >>> I wonder whether we just should add a name field to disk. >>> >> >> Of course we can, however, I'm not sure if this is better, because >> this field is not used in the fast path. > > Struct gendisk does have a (disk_)name field aleady. Yes, but this name is not major and minor(for example, sda instead of 8:0), Tejun was probably talking about major and minor name field. Thanks, Kuai > > . >
On Tue, Oct 08, 2024 at 02:24:45PM +0800, Yu Kuai wrote: > Yes, but this name is not major and minor(for example, sda instead of > 8:0), Tejun was probably talking about major and minor name field. Yes, I don't really want to add that as it is a horrible user interface.
Hi, Tejun! 在 2024/10/01 1:11, Tejun Heo 写道: > Hello, > > On Mon, Sep 30, 2024 at 04:52:58PM +0800, Yu Kuai wrote: >> +static inline bool blkg_print_dev_name(struct seq_file *sf, >> + struct blkcg_gq *blkg) >> +{ >> + struct gendisk *disk = blkg->q->disk; >> + >> + if (!disk) >> + return false; >> + >> + seq_printf(sf, "%u:%u", disk->major, disk->first_minor); >> + return true; >> +} >> + > > I wonder whether we just should add a name field to disk. And suggestions on this set now? I guess add a name filed is not appropriate. :( Thanks, Kuai > > Thanks. >
Hello, On Thu, Oct 31, 2024 at 04:04:00PM +0800, Yu Kuai wrote: > > On Mon, Sep 30, 2024 at 04:52:58PM +0800, Yu Kuai wrote: > > > +static inline bool blkg_print_dev_name(struct seq_file *sf, > > > + struct blkcg_gq *blkg) > > > +{ > > > + struct gendisk *disk = blkg->q->disk; > > > + > > > + if (!disk) > > > + return false; > > > + > > > + seq_printf(sf, "%u:%u", disk->major, disk->first_minor); > > > + return true; > > > +} > > > + > > > > I wonder whether we just should add a name field to disk. > > And suggestions on this set now? I guess add a name filed is not > appropriate. :( Yeah, I don't know. I've always struggled a bit with block device names. We use MAJ:MIN in all the input interfaces and mix the disk names and MAJ:MIN when outputting and there are (or is it used to be now?) request_queues without disk attached, so sometimes names are just not available. Jens, do you any preference here? The proposed patch can be fine but e.g. it can race against disk_release() if the caller isn't careful and it also sucks not knowing the name in destruction path. Thanks.
diff --git a/block/blk-cgroup.h b/block/blk-cgroup.h index b9e3265c1eb3..d62bcc2bae14 100644 --- a/block/blk-cgroup.h +++ b/block/blk-cgroup.h @@ -239,6 +239,18 @@ static inline bool bio_issue_as_root_blkg(struct bio *bio) return (bio->bi_opf & (REQ_META | REQ_SWAP)) != 0; } +static inline bool blkg_print_dev_name(struct seq_file *sf, + struct blkcg_gq *blkg) +{ + struct gendisk *disk = blkg->q->disk; + + if (!disk) + return false; + + seq_printf(sf, "%u:%u", disk->major, disk->first_minor); + return true; +} + /** * blkg_lookup - lookup blkg for the specified blkcg - q pair * @blkcg: blkcg of interest