On 02/21/2018 09:15 AM, Khalid Aziz wrote:
> +tag_storage_desc_t *alloc_tag_store(struct mm_struct *mm,
> +                                 struct vm_area_struct *vma,
> +                                 unsigned long addr)
...
> +     tags = kzalloc(size, GFP_NOWAIT|__GFP_NOWARN);
> +     if (tags == NULL) {
> +             tag_desc->tag_users = 0;
> +             tag_desc = NULL;
> +             goto out;
> +     }
> +     tag_desc->start = addr;
> +     tag_desc->tags = tags;
> +     tag_desc->end = end_addr;
> +
> +out:
> +     spin_unlock_irqrestore(&mm->context.tag_lock, flags);
> +     return tag_desc;
> +}

OK, sorry, I missed this.  I do see that you now have per-ADI-block tag
storage and it is not per-page.

How big can this storage get, btw?  Superficially it seems like it might
be able to be gigantic for a large, sparse VMA.

Reply via email to