Re: [Xen-devel] [PATCH] xen-netback: Turn off the carrier if the guest is not able to receive

From: David Vrabel
Date: Mon Aug 11 2014 - 08:37:46 EST


On 11/08/14 13:31, Zoltan Kiss wrote:
> On 08/08/14 17:33, Stephen Hemminger wrote:
>> This idea of bouncing carrier is wrong. If guest is flow blocked you
>> don't
>> want to toggle carrier. That will cause problems because applications
>> that are
>> looking for carrier transistions like routing daemons will be notified.
>>
>> If running a routing daemon this will also lead to link flapping which
>> is very bad and cause lots of other work for peer routing daemons.
>>
>> Carrier is not a suitable flow control mechanism.
>>
>
> Hi,
>
> Indeed, I also had some concerns about using carrier state to solve this
> problem, as the notifier can kick a lot of things, and flapping is not
> impossible. That's why the frontend has 10 seconds by default to do
> something. Practice shows that if a frontend can't do any receive work
> for that time, it is unlikely it will be able to do it soon.
> So worst case carrier flapping can happen only in every 10 seconds, I
> think that's manageable. I think the majority of the users have simple
> bridged setups where this carrier change doesn't start any expensive
> operation.
> The reason we choose carrier change for this purpose because we needed
> something which ditched everything in QDisc and made sure nothing will
> be queued up there until there is a chance we can transmit to the guest.
> Calling dev_deactivate straight away seemed less appropriate.

I do think we need to revisit this and introduce a per-queue
stop_and_flush operation we can use instead.

David
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/