From: Xue Ying <ying.xue0@gmail.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: David Miller <davem@davemloft.net>,
ying.xue@windriver.com, netdev@vger.kernel.org
Subject: Re: [PATCH] net: remove redundant checking for sock timer state
Date: Fri, 01 Feb 2013 15:14:19 +0800 [thread overview]
Message-ID: <510B6B4B.8080205@gmail.com> (raw)
In-Reply-To: <1359700003.30177.32.camel@edumazet-glaptop>
Eric Dumazet wrote:
> On Fri, 2013-02-01 at 01:09 -0500, David Miller wrote:
>
>> From: Ying Xue <ying.xue@windriver.com>
>> Date: Fri, 1 Feb 2013 13:53:00 +0800
>>
>>
>>> It's unnecessary to check whether the sock timer to be stopped is
>>> pending or not in sk_stop_timer() as del_timer() will do the same
>>> thing later.
>>>
>>> Signed-off-by: Ying Xue <ying.xue@windriver.com>
>>>
>> Did it even occur to you that when this code was written, this
>> "redundant" testing was also redundant, but that it might have been
>> done on purpose?
>>
>> If you are going to change this code, you must understand why it was
>> written this way, because that is the only context in which you will
>> be able to justify removing the test.
>>
>>
>
> I had the same reaction but maybe its not anymore a valid thing.
>
> Before commit 55c888d6d ([PATCH] timers fixes/improvements) there was
> indeed a significant cost calling del_timer() because of unconditional
> spinlock acquisition.
>
> But nowadays del_timer() doesn't blindly lock the spinlock.
>
> So I guess we could change all occurrences of :
>
> if (timer_pending(X))
> del_timer(X);
>
> It would save some bytes of code.
>
Eric, thanks for your explanation and suggestion.
But I cannot understand why we should first call timer_pending() before
del_timer() in your proposal.
By my understanding, we might get an unreal timer pending state out of
timer base lock (ie, lock_timer_base()),
and the "unreal" is only for pending state, on the contrary, the value
is real for inactive sate.
So calling timer_pending() out of timer base lock scope can make us
avoid some unnecessary grabbing spin lock operations.
However, in del_timer() there already has placed a timer_pending()
before lock_timer_base() is called. So why do we need
another before calling del_timer()?
Please you explain more.
Thanks,
Ying
> But please Ying, do a complete patch for net tree, don't send 30
> patches.
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
next prev parent reply other threads:[~2013-02-01 7:13 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-01 5:53 [PATCH] net: remove redundant checking for sock timer state Ying Xue
2013-02-01 6:09 ` David Miller
2013-02-01 6:26 ` Eric Dumazet
2013-02-01 7:14 ` Xue Ying [this message]
2013-02-01 7:21 ` Eric Dumazet
2013-02-01 7:25 ` Ying Xue
2013-02-01 9:26 ` David Laight
2013-02-01 15:22 ` Eric Dumazet
2013-02-01 6:32 ` Ying Xue
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=510B6B4B.8080205@gmail.com \
--to=ying.xue0@gmail.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=ying.xue@windriver.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.