Nikita,
you can find my comments below.
Could you please next time add suffux RH7 or RH8
to get something like [PATCH RH7] or [PATCH RH8] -- it's required to underatdn 
who should handle this patch: 
me (aka vz7 maintanance) or khorenko@ (Vz8 developemt)

Thank you,
        Vasily Averin

On 8/31/21 2:28 PM, Nikita Yushchenko wrote:
> +static ssize_t hoad_control_show(struct kobject *kobj,
> +             struct kobj_attribute *attr, char *buf)
> +{
> +     char *p = buf;
> +     int order;
> +     struct hoad_order_info *hoi;
> +     int counter;
> +     long d;
> +     unsigned int msecs;
> +
> +     rcu_read_lock();
> +     for (order = 1; order < MAX_ORDER; order++) {
> +             hoi = rcu_dereference(hoad_table[order]);
> +             if (hoi) {
> +                     counter = atomic_read(&hoi->counter);
> +                     msecs = counter ?
> +                             jiffies_to_msecs(jiffies - hoi->since_jiffies) :
> +                             0;
> +                     p += sprintf(p, "order %u: %u/%u in %u/%u msecs\n",
> +                                     order, counter, hoi->max_allocs,
> +                                     msecs, jiffies_to_msecs(hoi->interval));
> +             }
> +     }
> +     rcu_read_unlock();
> +     if (hoad_uevent_order) {
> +             p += sprintf(p, "event generation suspended");
> +             d = (long)(hoad_resume_jiffies - jiffies);
> +             if (d > 0) {
> +                     p += sprintf(p, ", resume in ");
> +                     msecs = jiffies_to_msecs(d);
> +                     if (msecs >= 1000 * 60 * 60 * 2)
> +                             p += sprintf(p, "%u hours",
> +                                             msecs / (1000 * 60 * 60));
> +                     else if (msecs > 1000 * 60 * 2)
> +                             p += sprintf(p, "%u minutes",
> +                                             msecs / (1000 * 60));
> +                     else
> +                             p += sprintf(p, "%u seconds",
> +                                             (msecs + 999) / 1000);
> +             }
> +             *p++ = '\n';
> +     }
> +
> +     return p - buf;
Do we have any guarantee that buf will not be overflowed?

> +static int hoad_init(void)
> +{
> +     int ret;
> +
> +     /* To be able to generate uevents, need a kobject with kset defined.
> +      *
> +      * To avoid extra depth inside sysfs, create a kset and use it's
> +      * internal kobject, by setting it's 'kset' field to itself.
> +      */
> +     struct kset *kset = kset = kset_create_and_add("hoad", NULL, mm_kobj);

extra ' = kset' ?

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to