Re: [PATCH 21/21] x86/intel_rdt/mbm: Handle counter overflow
From: Luck, Tony
Date: Mon Jul 10 2017 - 13:54:29 EST
On Fri, Jul 07, 2017 at 08:50:40AM +0200, Thomas Gleixner wrote:
> Aside of that, are you really serious about serializing the world and
> everything on a single global mutex?
It would be nice to not do that, but there are challenges. At
any instant someone else might run:
# rmdir /sys/fs/resctrl/{some_control_group}
and blow away the control group and all the monitor groups under
it.
Someone else might do:
# echo 0 > /sys/devices/system/cpu/cpu{N}/online
where "N" is the last online cpu in a domain, which will
blow away an rdt_domain structure and ask kernfs to remove
some monitor files from every monitor directory.
If we change how we handle rdt_domains to
1) Not delete them when last CPU goes away (and re-use them
if they come back)
2) Have a safe way to search rdt_resource.domains for a domain
that we know is there even though another may be in the middle
of being added
Then we could probably make:
$ cat /sys/fs/restrl/ ... /llc_occupancy
etc. not need to grab the mutex. We'd still need something
to protect against a cross processor interrupt geting in the
middle of the access to IA32_QM_EVTSEL/IA32_QM_CTR and for
MBM counters to serialize access to mbm_state ... but it would
be a lot finer granularity.
-Tony