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

Re: [Xen-devel] XenGT is still regressed on master



On 08/03/2019 14:58, Jan Beulich wrote:
>>>> On 08.03.19 at 15:25, <igor.druzhinin@xxxxxxxxxx> wrote:
>> On 08/03/2019 11:55, Jan Beulich wrote:
>>
>> I like the latter suggestion more. Seems less invasive and prone to
>> regressions. I'd like to try to implement it. Although I think the
>> hypervisor check should be more general: like if IOREQ is in progress
>> don't try to got through fast-path and re-enter IOREQ completion path.
>>
>> What if we just check !hvm_ioreq_needs_completion() before returning
>> X86EMUL_OKAY i.e. fall through to the bad_gfn_to_mfn case if that check
>> fails as Paul suggested?
> 
> I didn't see such a suggestion, I think, and I'm afraid it would still not
> be correct in the general case. As said before, Getting back
> HVMTRANS_okay means the write did actually complete, and no
> second attempt to do the write should be done.

What if we don't do hvm_copy() in that case and will go to slow-path
directly, would that be better?

> If anything I could see the code transition from STATE_IORESP_READY
> to STATE_IOREQ_NONE in that case, with a comment throughly
> explaining why that's needed.

I don't think it's a good idea to transfer IOREQ state in different
places - IOREQ consumption happens now in hvmemul_do_io() function and
we need to re-enter it to finally finish with IOREQ processing. If we
want to change it - the entire infrastructure needs to be re-architected.

> Independent of the specific solution - any change to linear_write()
> would imo want suitably mirroring to linear_read(), which implies that
> anything that can't validly be done to the latter is also unlikely to be
> valid for the former.

Seems reasonable, I'd also prefer the solution to be symmetric.

> And then, following Andrew's response, wouldn't what you suggest
> again take care of only the p2m_ioreq_server special case? (Since
> the immediate issue is with just this type, such a special case fix
> might still be acceptable, as long as it comes with a promise to deal
> with the general case down the road.)
I think the idea of completing IOREQ if it's still in progress is
general enough (we could also look for other possibly latent places in
the code where we bail prematurely).

Igor

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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