On 8/16/21 5:39 PM, Andrew Morton wrote: > On Mon, 16 Aug 2021 17:17:50 -0700 Mike Kravetz <mike.kravetz@xxxxxxxxxx> wrote: > >>> >>> And how does one know the operation has completed so the sysfs files >>> can be reloaded for another operation? >>> >> >> When the write to the file is complete, the operation has completed. >> Not exactly sure what you mean by reloading the sysfs files for >> another operation? > > If userspace wishes to perform another demote operation, it must wait > for the preceding one to complete. > > Presumably if thread A is blocked in a write to `demote' and thread B > concurrently tries to perform a demotion, thread B will be blocked as > well? Was this tested? I must admit that I did not specifically test this. However, the patch series to make freeing of hugetlb pages IRQ safe added a (per-hstate)mutex that is taken when sysfs files modify the number of huge pages. demote writes take this mutex (patch 1). That synchronizes not only concurrent writes to demote but also concurrent modifications of nr_hugepages. > > Lots of things are to be added to changelogs & documentation, methinks. > OK. Thank you for taking a look at this! -- Mike Kravetz