[dpdk-dev] [PATCH 2/2] bond: add mode 4 support

Neil Horman nhorman at tuxdriver.com
Mon Sep 22 15:15:24 CEST 2014


On Mon, Sep 22, 2014 at 11:59:33AM +0000, Jastrzebski, MichalX K wrote:
> Hi Neil, 
> I agree with you that the most important is to release a code that works best without errors and this is what we all are working on. Pawel's answer "no time" doesn't sounds good here (he meant something else) - I ensure you that Pawel cares a lot to release a very good code. He proposes a solution that fixes this race for 1.8 release. Implementation of a new rte_api_call will take more time, because this is a new functionality for eal_timer library and with this it seems to be not much time left. Having said that, should we abandon hotfix and focus on the long-term solution?
> 

Yes, I think the proper solution should be the one we shoot for here, though in
re-reading my response, perhaps I wasn't as clear as I could have been.  All I'm
really advocating here is that the while(...) { rte_pause() } loop that Pawels
fix puts in place is better wrapped in a function implemented in the rte_alarm
library, rather than privately to the bonding library, along with the
replacement of all the pointer assignments with an internal state variable.  I'm
not asserting that we need to audit the code to fix up all other call sites
using the rte_alarm api right now (though a quick cscope search reveals the only
locations are in the test apps).  I'm just saying lets fix it in such a way that
other users can take advantage of it now, and write the unit tests for it after
it ships.

In fact, looking at the alarm test infrastructure, alarm re-arming stress isn't
currently tested at all, so that could be a large undertaking after shipment.
Neil

> Best regards
> Michal
> 
> 
> -----Original Message-----
> From: Neil Horman [mailto:nhorman at tuxdriver.com] 
> Sent: Monday, September 22, 2014 12:25 PM
> To: Wodkowski, PawelX
> Cc: dev at dpdk.org; Jastrzebski, MichalX K; Doherty, Declan
> Subject: Re: [dpdk-dev] [PATCH 2/2] bond: add mode 4 support
> 
> On Mon, Sep 22, 2014 at 06:26:21AM +0000, Wodkowski, PawelX wrote:
> > > I think that will work, but I believe you're making it more 
> > > complicated (and less reusable) than it needs to be.  What I think 
> > > you really need to do is create a new rte api call, 
> > > rte_eal_alarm_cancel_sync (something like the equivalent of 
> > > del_timer_sync in linux, that wraps up the
> > > while(rte_eal_alarm_cancel(...) == 0) {rte_pause} in its own 
> > > function (so other call sites can use it, as I don't think this is 
> > > an uncommon problem), Then just create a bonding-internal state flag 
> > > to signal the periodic callback that it shouldn't re-arm the timer.  
> > > That way all you have to do is set the flag, and call 
> > > rte_eal_alarm_cancel_sync, and you're done.  And other applications 
> > > will be able to handle this common type of operation as well
> > > 
> > > Neil
> > 
> > I agree with you that alarms should be upgraded but this need to 
> > discussed and tested. Now there is not time for that.
> > 
> Nak, thats a completely broken argument.  I've just demonstrated to you a race condition in the driver you are submitting.  Granted it stems from a design lmitation in the alarm subsystem, but its what we all have to work with, and we can work around it and make the driver safe.  To say there is "no time" to fix it, implies to me that you care more about just slamming your code in than making anything work properly.  What exactly is your rush that makes you think its more important for the code to be merged than fixing it to work correctly?
> Neil
> 
> --------------------------------------------------------------
> Intel Shannon Limited
> Registered in Ireland
> Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
> Registered Number: 308263
> Business address: Dromore House, East Park, Shannon, Co. Clare
> 
> This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
> 
> 
> 


More information about the dev mailing list