On 08.03.21 21:33, Boris Ostrovsky wrote:
On 3/6/21 11:18 AM, Juergen Gross wrote:An event channel should be kept masked when an eoi is pending for it. When being migrated to another cpu it might be unmasked, though. In order to avoid this keep three different flags for each event channel to be able to distinguish "normal" masking/unmasking from eoi related masking/unmasking and temporary masking. The event channel should only be able to generate an interrupt if all flags are cleared. Cc: stable@xxxxxxxxxxxxxxx Fixes: 54c9de89895e0a36047 ("xen/events: add a new late EOI evtchn framework") Reported-by: Julien Grall <julien@xxxxxxx> Signed-off-by: Juergen Gross <jgross@xxxxxxxx> Reviewed-by: Julien Grall <jgrall@xxxxxxxxxx> --- V2: - introduce a lock around masking/unmasking - merge patch 3 into this one (Jan Beulich) V4: - don't set eoi masking flag in lateeoi_mask_ack_dynirq()Reviewed-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> Ross, are you planning to test this?
Just as another data point: With the previous version of the patches a reboot loop of a guest needed max 33 reboots to loose network in my tests (those were IIRC 6 test runs). With this patch version I stopped the test after about 1300 reboots without having seen any problems. Juergen
Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc
Description: application/pgp-keys
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature