ChanServ changed the topic of #armlinux to: ARM kernel talk [Upstream kernel, find your vendor forums for questions about their kernels] | https://libera.irclog.whitequark.org/armlinux
nsaenz has joined #armlinux
nsaenz has quit [Ping timeout: 265 seconds]
rvalue- has joined #armlinux
rvalue has quit [Ping timeout: 252 seconds]
rvalue- is now known as rvalue
heat has quit [Read error: Connection reset by peer]
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #armlinux
headless has quit [Ping timeout: 260 seconds]
headless has joined #armlinux
cbeznea has joined #armlinux
mripard has joined #armlinux
nsaenz has joined #armlinux
nsaenz has quit [Ping timeout: 272 seconds]
System_Error has quit [Ping timeout: 260 seconds]
System_Error has joined #armlinux
headless has quit [Quit: Konversation terminated!]
heat has joined #armlinux
nsaenz has joined #armlinux
nsaenz has quit [Remote host closed the connection]
nsaenz has joined #armlinux
sszy has joined #armlinux
nsaenz has quit [Remote host closed the connection]
nsaenz has joined #armlinux
frieder has joined #armlinux
headless has joined #armlinux
aneesh has joined #armlinux
mvaittin has quit [Ping timeout: 265 seconds]
headless has quit [Quit: Konversation terminated!]
heat has quit [Read error: Connection reset by peer]
heat has joined #armlinux
nsaenz has quit [Remote host closed the connection]
nsaenz has joined #armlinux
<aneesh>
maz, with respect to MTE_PERM usecase, one of the goals for MTE_PERM was to allow support for smaller pool of allocation tagged memory. But supporting such a pool will require wider MM changes and there was no consensus w.r.t the usefulness of supporting that usecase. We can also use MTE_PERM for another usecase. ie, supporting usage of MTE in a guest where we don't allow MTE now.
<aneesh>
I am looking at implementing that specific use case such a way that future updates are possible for smaller allocation tagged memory pool.
headless has joined #armlinux
<maz>
aneesh: what are these use-cases, and why don't they currently work?
<aneesh>
The two i listed in my email were. "libkrun and virtiofs
<aneesh>
They don't support MTE now because we don't support MTE with page cache and some of the memory regions back guest memory are from page cache
<aneesh>
in both the case, these memory regions are special in that user space allocation will not come from these regions and we can be sure there will not be a tag access check against those pfns
heat_ has joined #armlinux
heat has quit [Read error: Connection reset by peer]
<maz>
and what does it mean for that memory that is now tagged for VMs only? what guarantees that there will not be a tagged access outside of the VM? How do you transition a page back from tagged to non-tagged?
<maz>
and crucially, what is the userspace ABI for managing these transition?
<maz>
you need to have clear answers to these points before we can even start reviewing patches.
<aneesh>
sure. I understand the confusion. It is also that i am may be explaining all the details in my cover letter. For the usecase i am trying to address, there will not be a conversion from tagged to non-tagged. For ex: we can look at guest memory made of two vmas , one anon and one pagecache.
<aneesh>
the guest usage of its memory is such that the memory backed by page cache is considered special and will never be allocatable by userspace. Hence there won't be a tag access check on this pfns. In both the examples, these pfns are not part of buddy for any sort of page allocation from that.
<aneesh>
Considering there will be no transition between tagged to non-tagged, there is no user API for that.
fvincenzo has quit [Remote host closed the connection]
<aneesh>
on the host all pfns are considered access tagged. on guest since some of the guest pfns are backed by pagcache, we deny the MTE usage in guest now. (kvm_arch_prepare_memory_regions()) . The changes allow the usage of MTE and if the guest break the rule that no tag access to those "special" pfns, we get a tag access check fault
<aneesh>
the VM get terminated on such event.
fvincenzo has joined #armlinux
dmart has joined #armlinux
heat_ has quit [Read error: Connection reset by peer]
heat_ has joined #armlinux
<aneesh>
maz, ^
socksins1 has quit [Quit: WeeChat 3.8]
socksinspace has quit [Remote host closed the connection]
nsaenz has quit [Ping timeout: 260 seconds]
<maz>
aneesh: I really think that lacking the reverse conversion is short-sighted. you *really* want it in.
nsaenz has joined #armlinux
<aneesh>
maz, what do you mean by reverse conversion?
socksinspace has joined #armlinux
socksinspace has quit [Remote host closed the connection]
nsaenz_ has joined #armlinux
nsaenz has quit [Ping timeout: 264 seconds]
<maz>
from tagged to non-tagged.
<aneesh>
for supporting an allocation from a special pool and making it useful as a general page allocator requires large MM changes ( possibly a separate zone, or a custom device, identifying lru pages to swap things out etc).
<aneesh>
if the goal is to reduce the memory wastage , there could be other approaches. I am not sure we will have a smaller special pool of allocation tag pages soon.
<aneesh>
considering such a facility doesn't exit, it didn't make sense to look at converting from tagged to non-tagged.
heat_ is now known as heat
socksinspace has joined #armlinux
socksins1 has joined #armlinux
frieder has quit [Remote host closed the connection]