[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AARCH64 sve and sve2 instruction emulation not calling plugin memory

From: Richard Henderson
Subject: Re: AARCH64 sve and sve2 instruction emulation not calling plugin memory op
Date: Wed, 9 Dec 2020 11:57:54 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

On 12/9/20 10:30 AM, Alex Bennée wrote:
>> Nope, nor for most any other out-of-line memory operation performed by any
>> other qemu target.  Starting with arm's own dc zva.
> Oops - bit of an oversight there. Is this only a problem for linux-user?
> Looking at the dc zva implementation it certainly seems it should be
> going through the memory helpers for softmmu. Maybe all we need to do is
> have a CONFIG_PLUGIN case for user-mode that eschews the memset?

The softmmu version will also go through memset, usually.  See

        mem = probe_write(env, vaddr, blocklen, mmu_idx, ra);

where we only take the slow path if we can't resolve the virtual address to RAM
(and excluding watchpoints).

> How do we audit all the helpers? Is it just a case of those using memset?

Not always.

For softmmu, I think we need to arrange for some softtlb bit, akin to what we
do for watchpoints, so that all memory accesses are forced through the slow 

That means we capture all references, no matter where they're made -- directly
in tcg or via helpers.  Which means that we *don't* have to have that separate
secondary call generated in tcg.

Which means we don't have to audit, we've simply changed the machinery under
the covers.

>> There are other changes to the slow path that need changing, because at 
>> present
>> I do not have enough bits to represent 256-bit alignment for (specifically)
>> arm32 neon "vld4 {d0-d3},[r0:256]".  So perhaps I can work in the plugin 
>> thing
>> at the same time.
> Expanding MemOp and TCGMemopidx?

No, conflict with softtlb bits.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]