Messages in this thread | | | Date | Mon, 27 Nov 2023 16:42:25 +0100 | From | David Hildenbrand <> | Subject | Re: [RFC V3 PATCH] arm64: mm: swap: save and restore mte tags for large folios |
| |
>>> Are you referring to Steven's suggestion of reading the tag to see if it's >>> zeros? I think that demonstrates my point that this has to be done per-page and >> >> Yes. > > OK I'm obviously being thick, because checking a page's tag to see if its zero > seems logically equivalent to checking the existing per-page flag, just more > expensive. Yes we could make that change but I don't see how it helps solve the > real problem at hand. Unless you are also deliberately trying to remove the > per-page flag at the same time, as per Matthew's master plan?
I think a per-folio interface is cleaner and more future-proof, and removing the per-page flag might be a nice side product of that.
Anyhow, just some thoughts from my side if it could be easily/cleanly done.
At least the "easy" part does not seem to be the case, so I'm fine with deferring anything like that for now.
[...]
>> >> We can identify in 1) the subpages by reading the tag from HW, > > I don't think this actually works; I'm pretty sure the optimization to clear the > tag at the same time as the page clearing only happens for small pages. I don't > think this will be done when allocating a THP today. Obviously that could change. >
Could be, absolutely no expert. I was primarily on the "It would be possible to reverse this scheme - we could drop the page flag and just look at the actual tag storage. If it's all zeros then obviously there's no point in storing it." comment from Steven.
>> and on 2) by >> checking the datastructure. For 3), there is nothing to check. >> >> On swapout of a large folio: >> >> * For 3) we don't do anything >> * For 2) we don't do anything >> * For 1) we store all tags that are non-zero (reading all tags) and >> transition to 2). > > Given a tag architecturally exists for every page even when unused, and we think > a folio being partially mte-tagged is the corner case, could you simplify this > further and just write out all the tags for the folio and not care if some are > not in use?
Likely this could be simplified, yes.
-- Cheers,
David / dhildenb
| |