From: Neil Horman <nhorman@tuxdriver.com>
To: "Jastrzebski, MichalX K" <michalx.k.jastrzebski@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
"Landowski, MarekX M" <marekx.m.landowski@intel.com>
Subject: Re: [dpdk-dev] [PATCH 2/2] bond: add mode 4 support
Date: Mon, 22 Sep 2014 09:15:24 -0400 [thread overview]
Message-ID: <20140922131524.GF25406@hmsreliant.think-freely.org> (raw)
In-Reply-To: <60ABE07DBB3A454EB7FAD707B4BB158213896977@IRSMSX109.ger.corp.intel.com>
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@tuxdriver.com]
> Sent: Monday, September 22, 2014 12:25 PM
> To: Wodkowski, PawelX
> Cc: dev@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.
>
>
>
prev parent reply other threads:[~2014-09-22 13:09 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-17 14:21 [dpdk-dev] [PATCH 0/2] " Pawel Wodkowski
2014-09-17 14:21 ` [dpdk-dev] [PATCH 1/2] bond: extract common code to separate functions Pawel Wodkowski
2014-09-17 14:51 ` Neil Horman
2014-09-17 14:21 ` [dpdk-dev] [PATCH 2/2] bond: add mode 4 support Pawel Wodkowski
2014-09-17 15:13 ` Neil Horman
2014-09-18 8:07 ` Wodkowski, PawelX
2014-09-18 16:02 ` Neil Horman
2014-09-19 12:47 ` Wodkowski, PawelX
2014-09-19 17:29 ` Neil Horman
2014-09-22 6:26 ` Wodkowski, PawelX
2014-09-22 10:24 ` Neil Horman
[not found] ` <60ABE07DBB3A454EB7FAD707B4BB158213896977@IRSMSX109.ger.corp.intel.com>
2014-09-22 13:15 ` Neil Horman [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140922131524.GF25406@hmsreliant.think-freely.org \
--to=nhorman@tuxdriver.com \
--cc=dev@dpdk.org \
--cc=marekx.m.landowski@intel.com \
--cc=michalx.k.jastrzebski@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).