Re: [RFC PATCH 05/42] drm/i915/region: support basic eviction

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

 



Quoting Matthew Auld (2019-02-26 14:58:31)
> On Thu, 14 Feb 2019 at 15:25, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote:
> >
> > Quoting Matthew Auld (2019-02-14 14:57:03)
> > > +       list_for_each_entry(obj, &mem->purgeable, region_link) {
> > > +               if (!i915_gem_object_has_pages(obj))
> > > +                       continue;
> > > +
> > > +               if (READ_ONCE(obj->pin_global))
> > > +                       continue;
> > > +
> > > +               if (atomic_read(&obj->mm.pages_pin_count) > obj->bind_count)
> > > +                       continue;
> > > +
> > > +               list_add(&obj->tmp_link, &purgeable);
> >
> > Oh crikey.
> 
> What's the crikey for? We do the purging in two passes? Yeah, I guess
> that's kinda garbage. There is definitely some leftover baggage from
> when we did "interesting" things in here, which needs to be fixed up.

"tmp_link" has a very bad taste (prior experience turned sour), and this
turns out to be lacking in locking. Pesky little global thing.
Alternatives tend to be to dynamically allocate list entries. My favourite
half-baked idea is to use an XArray for a chunked list (so we get storage
allocated for a bunch of entries at once).
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




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

  Powered by Linux