tech-kern archive

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

Re: Changes to reduce pressure on uvm_pageqlock



On Sun, Dec 08, 2019 at 07:00:43AM -0800, Jason Thorpe wrote:

> > On Dec 8, 2019, at 6:00 AM, Mindaugas Rasiukevicius <rmind%netbsd.org@localhost> wrote:
> > 
> > Just a small note: since vm_page::wire_count and vm_page::loan_count are
> > kind of mutually exclusive, I think suggestion by yamt@ (long time ago) to
> > merge them (positive value meaning wired count and negative -- loan) is a
> > useful one.  It would also free up those 16-bits, since Andrew seems to be
> > in need of some.

Thank you for the suggestion.  I have added stuff into vm_page which I don't
particularly like doing, so I'll look into the change you mentioned, maybe
not this week though and after I deliver this set of changes.

I do want to add more fields.  It turns out the first two fit into the
unused lower bits of pg->phys_addr without too much inconvenience for
anybody:

- freelist: 'cos uvm_page_lookup_freelist() turns up prominently in traces
- bucket: which cpu->ci_package_id I am from, for L2/L3 locality or NUMA

The third looks like it'll fit in the bottom bits of pg->offset but I need
to investigate what dificulties it might cause:

- waiter count for PG_BUSY, replacing PG_WANTED, to avoid thundering herd

> That seems like a good change to make, but omg please wrap the
> manipulation in macros / inlines because it seems like otherwise it could
> be quite error-prone.

Agreed.

Andrew


Home | Main Index | Thread Index | Old Index