Hi Lianbo,

Sorry for the compiling error, please check v2:
https://www.mail-archive.com/[email protected]/msg01898.html

Thanks,
Tao Liu

On Fri, Dec 12, 2025 at 8:06 PM Lianbo Jiang <[email protected]> wrote:
>
> Hi, Tao
>
> Thank you for the upate.
>
> On 12/2/25 6:28 AM, [email protected] wrote:
> > Date: Mon,  1 Dec 2025 15:44:12 +1300
> > From: Tao Liu<[email protected]>
> > Subject: [Crash-utility] [PATCH] Resolve BLK_MQ_F_TAG_HCTX_SHARED at
> >       runtime
> > To:[email protected]
> > Cc: Tao Liu<[email protected]>
> > Message-ID:<[email protected]>
> > Content-Type: text/plain; charset="US-ASCII"; x-default=true
> >
> > Though upstream kernel have defined BLK_MQ_F_TAG_HCTX_SHARED
> > as (1 << 3), the value might be set different, e.g. [1]. In
> > this patch, we will use enumerator_value() to get its value
> > at runtime, to make the code more adaptable.
> >
> > [1]:https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-8/-/blob/c8s/include/linux/blk-mq.h?ref_type=heads#L321
> >
> > Signed-off-by: Tao Liu<[email protected]>
> > ---
> >
> > This patch is the follow-up of [2].
> >
> > [2]:https://www.mail-archive.com/[email protected]/msg01848.html
> >
> > ---
> >   dev.c | 5 +++--
> >   1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/dev.c b/dev.c
> > index 27318e8..127cf5a 100644
> > --- a/dev.c
> > +++ b/dev.c
> > @@ -4326,11 +4326,11 @@ struct bt_iter_data {
> >   #define MQ_RQ_IN_FLIGHT 1
> >   #define REQ_OP_BITS     8
> >   #define REQ_OP_MASK     ((1 << REQ_OP_BITS) - 1)
> > -#define BLK_MQ_F_TAG_HCTX_SHARED (1 << 3)
> > +static int blk_hctx_shared = 0;
> >
> >   static bool blk_mq_is_shared_tags(unsigned int flags)
> >   {
> > -     return flags & BLK_MQ_F_TAG_HCTX_SHARED;
> > +     return flags & blk_hctx_shared;
> >   }
> >
> >   static uint op_is_write(uint op)
> > @@ -4952,6 +4952,7 @@ void diskio_init(void)
> >       MEMBER_OFFSET_INIT(request_queue_tag_set, "request_queue", "tag_set");
> >       MEMBER_OFFSET_INIT(blk_mq_tag_set_flags, "blk_mq_tag_set", "flags");
> >       MEMBER_OFFSET_INIT(blk_mq_tag_set_shared_tags, "blk_mq_tag_set", 
> > "shared_tags");
> > +     enumerator_value("BLK_MQ_F_TAG_HCTX_SHARED", &blk_hctx_shared);
>
> I got an error as below:
>
> gcc -c -g -DX86_64 -DLZO -DVALGRIND -DGDB_16_2  dev.c -Wall -O2
> -Wstrict-prototypes -Wmissing-prototypes -fstack-protector
> -Wformat-security
> dev.c: In function ‘diskio_init’:
> dev.c:4955:54: error: passing argument 2 of ‘enumerator_value’ from
> incompatible pointer type [-Wincompatible-pointer-types]
>   4955 |         enumerator_value("BLK_MQ_F_TAG_HCTX_SHARED",
> &blk_hctx_shared);
>        | ^~~~~~~~~~~~~~~~
>        |                                                      |
>        |                                                      int *
> In file included from dev.c:18:
> defs.h:5856:30: note: expected ‘long int *’ but argument is of type ‘int *’
>   5856 | int enumerator_value(char *, long *);
>        |                              ^~~~~~
> make[4]: *** [Makefile:457: dev.o] Error 1
> make[3]: *** [Makefile:2237: gdb] Error 2
> make[2]: *** [Makefile:327: rebuild] Error 2
> make[1]: *** [Makefile:315: gdb_merge] Error 2
> make: *** [Makefile:307: all] Error 2
>
> BTW: I used the gcc-15.2.1.
>
> gcc version 15.2.1 20251022 (Red Hat 15.2.1-3) (GCC)
>
> Lianbo
>
> >
> >       dt->flags |= DISKIO_INIT;
> >   }
> > -- 2.47.0
>
--
Crash-utility mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
Contribution Guidelines: https://github.com/crash-utility/crash/wiki

Reply via email to