Re: [PATCH pahole] pahole: use 32-bit integers for iterations within CU

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em Thu, Mar 07, 2019 at 11:09:17AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Thu, Mar 07, 2019 at 11:02:47AM -0300, Arnaldo Carvalho de Melo escreveu:
> > Em Wed, Mar 06, 2019 at 04:23:21PM -0800, Andrii Nakryiko escreveu:
> > > Due to this assumption, libdwarves and other parts of pahole are using 16-bit
> > > counters to iterate over entities within CU. This can cause infinite loop when
> > > iterating BTF data, if there are more than 65535 types. This patch changes
> > > non-public variables to use 32-bit integers, where appropriate.
>  
> > Ok, there are some bits that are unrelated, I'm comment on it and remove
> > before applying.
> 
> Ooops, see below, I'm removing the non-type related parts, and will look
> at changing the types till btfdiff with that allyesconfig aarch64
> vmlinux image shows no diffs.

This one as well is not needed:

@@ -1225,7 +1225,7 @@ static size_t __class__fprintf(struct class *class, const struct cu *cu,
        struct tag *tag_pos;
        const char *current_accessibility = NULL;
        struct conf_fprintf cconf = conf ? *conf : conf_fprintf__defaults;
-       const uint16_t t = type->namespace.tag.tag;
+       const uint32_t t = type->namespace.tag.tag;
        size_t printed = fprintf(fp, "%s%s%s%s%s",
                                 cconf.prefix ?: "", cconf.prefix ? " " : "",
                                 ((cconf.classes_as_structs ||


As this is just for the type of the tag, not its type, i.e. its about
DW_TAG_struct_type, etc.

- Arnaldo



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux