Hi Carlo,

On 27/03/2024 11:10, Carlo Nonato wrote:
Hi guys,

Question is: How would you justify such a change? IOW I'm not convinced
(yet) this wants doing there.

You mean in this series?

Looking at the code, the flag is originally set in
alloc_domheap_pages(). So I guess it would make sense to do it in
free_domheap_pages().

We don't hold the heap_lock there.
Regardless of the safety question (I will answer below), count_info is not meant to be protected by heap_lock. The lock is protecting the heap and ensure we are not corrupting them when there are concurrent call to free_heap_pages().

> Is it safe to change count_info without it?

count_info is meant to be accessed locklessly. The flag PGC_extra cannot be set/clear concurrently because you can't allocate a page that has not yet been freed.

So it would be fine to use clear_bit(..., ...);

Cheers,

--
Julien Grall

Reply via email to