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

Re: [Xen-devel] [PATCH v7 3/5] x86/ioreq server: Handle read-modify-write cases for p2m_ioreq_server pages.





On 3/13/2017 7:22 PM, Jan Beulich wrote:
On 11.03.17 at 09:42, <yu.c.zhang@xxxxxxxxxxxxxxx> wrote:
On 3/10/2017 11:33 PM, Jan Beulich wrote:
On 08.03.17 at 16:33, <yu.c.zhang@xxxxxxxxxxxxxxx> wrote:
@@ -197,6 +217,10 @@ static int hvmemul_do_io(
            *   - If the IOREQ_MEM_ACCESS_WRITE flag is not set, treat it
            *   like a normal PIO or MMIO that doesn't have an ioreq
            *   server (i.e., by ignoring it).
+         *
+         *   - If the accesss is a read, this could be part of a
+         *   read-modify-write instruction, emulate the read so that we
+         *   have it.
"it" being what here? Grammatically the insn, but we don't care
about "having" the insn.
Here "have it" means " to have the value on this address copied in".
Sorry for the inaccurate comment. How about just "emulate the read first"?
Sounds okay.

@@ -226,6 +250,17 @@ static int hvmemul_do_io(
                   }
/*
+                 * This is part of a read-modify-write instruction.
"is" or "may be"?
I believe should be "is".
It's the only scenario I can imagine when an read operation(only when
this operation is
also a write one) traps. Otherwise there shall be no VM exit.
Even with a racing update to the type?

Yes.
With patch 1/5, there shall be no racing update to the p2m type during this process. Besides, I believe even without patch 1/5, and we allow the racing p2m change, it will only happen on a p2m_ioreq_server page changed to p2m_ram_rw(in such case it is shall only be a write or a read-modify-write op that cause such vm exit). The race will not happen for a p2m_ram_rw page changed to p2m_ioreq_server, because there shall be no
vm exit at all.

Thanks
Yu

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.