netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tejaswi Tanikella <tejaswit@codeaurora.org>
To: Andrew Lunn <andrew@lunn.ch>
Cc: netdev@vger.kernel.org, f.fainelli@gmail.com, davem@davemloft.net
Subject: Re: [PATCH net 1/2] ipv4: igmp: use alarmtimer to prevent delayed reports
Date: Wed, 13 Jun 2018 19:02:59 +0530	[thread overview]
Message-ID: <20180613133256.GA20232@tejaswit-linux.qualcomm.com> (raw)
In-Reply-To: <20180612162818.GA12251@lunn.ch>

On Tue, Jun 12, 2018 at 06:28:18PM +0200, Andrew Lunn wrote:
> On Mon, Jun 11, 2018 at 05:21:05PM +0530, Tejaswi Tanikella wrote:
> > On receiving a IGMPv2/v3 query, based on max_delay set in the header a
> > timer is started to send out a response after a random time within
> > max_delay. If the system then moves into suspend state, Report is
> > delayed until system wakes up.
> > 
> > Use a alarmtimer instead of using a timer. Alarmtimer will wake the
> > system up from suspend to send out the IGMP report.
> 
> Hi Tejaswi
> 
> I think i must be missing something here. If we are suspended, we are
> not receiving multicast frames. If we are not receiving frames, why do
> we need to reply to the query?
> 
> Once we resume, i expect we will reply to the next query. You could
> optimise restarting the flow by immediately sending a membership
> report, same as when the setsockopt is used to join the group.
> 
> 	Andrew

Hi Andrew,


I'll try to explain my scenario. This was observed on a arm64 device.
An application registers for a mcast group, and just listens to mcast
packets. The connection is setup and mcast packets are being forwarded
by the router. Multicast packets are sent out every few minutes.
Not a very busy connection.

After some time the router sends out a IGMPv2 query. The max delay in
the header is set to 10s. The system starts a timer to send out the
response at 9s. But the device suspends and wakes up after 60s.
The response is sent out 50s late.

ftrace logs with boottime trace_clock and my igmp_logs:

4740693      kworker/0:3-395   [000] ..s2  4716.425695: igmp_log: skbaddr=ffffffc156fe6600 daddr=224.0.0.1, id=0, rc=4295217721
4740694      kworker/0:3-395   [000] d.s4  4716.425717: timer_start:timer=ffffffc217763140 function=igmp_timer_expire expires=4295218678 [timeout=957] flags=0x00000000
        timer set for 9.57 seconds.  957 jiffies

< device suspends >

< wakes up after ~60s >
4781289           <idle>-0     [000] .ns2  4779.170886: timer_expire_entry: timer=ffffffc217763140 function=igmp_timer_expire now=4295218678
4781290           <idle>-0     [000] .ns2  4779.171045: igmp_log: skbaddr=ffffffc1559d0e00 daddr=227.226.228.225, id=0, rc=4295218678

Since the response was delayed, mcast packets are not forwarded by the
router.

My changes use a alarmtimer, this will wake the system up if the timer
expires.

Thanks,
Tejaswi

  reply	other threads:[~2018-06-13 13:33 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-11 11:51 [PATCH net 1/2] ipv4: igmp: use alarmtimer to prevent delayed reports Tejaswi Tanikella
2018-06-11 11:52 ` [PATCH 2/2] ktime: helpers to convert between ktime and jiffies Tejaswi Tanikella
2018-06-12 16:30   ` Andrew Lunn
2018-06-13 13:35     ` Tejaswi Tanikella
2018-06-13 16:51       ` Florian Fainelli
2018-06-11 13:25 ` [PATCH net 1/2] ipv4: igmp: use alarmtimer to prevent delayed reports kbuild test robot
2018-06-11 13:25 ` kbuild test robot
2018-06-12 16:28 ` Andrew Lunn
2018-06-13 13:32   ` Tejaswi Tanikella [this message]
2018-06-13 14:44     ` Andrew Lunn
2018-06-14 13:14       ` Tejaswi Tanikella

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=20180613133256.GA20232@tejaswit-linux.qualcomm.com \
    --to=tejaswit@codeaurora.org \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=netdev@vger.kernel.org \
    /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).