From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: "Marc Strämke" <marc.straemke@eltropuls.de>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai] rtnet locking/socket SKBs
Date: Thu, 4 Jun 2015 13:20:34 +0200 [thread overview]
Message-ID: <20150604112034.GT27570@hermes.click-hack.org> (raw)
In-Reply-To: <2172332.WGhck7t4nv@eltrolinux48.eltroad.eltropuls>
On Thu, Jun 04, 2015 at 01:09:08PM +0200, Marc Strämke wrote:
> Gilles,
>
> Am Donnerstag, 4. Juni 2015, 12:56:16 schrieb Gilles Chanteperdrix:
> > The previous rtnet design was converted to reference counts globally
> > when integrating into xenomai 3, some details may still need fixing.
> > The old design was different but lead to the close syscall looping
> > for ever and blocking your application if anything went wrong, so,
> > this is an attempt to avoid this issue.
> Yes I do understand this. I am just trying to figure out what the right fix is.
> If I just disable incrementing the fd reference count (see attached patch)
> AF_PACKET works as it should. From my current understanding of the code the
> reference counting for the SKB Pools attached to a socket is redundant, but
> I've only closely inspected AF_PACKET not the other sockets in the IP stack.
I will have a look at that when I resume working on rtnet. This
should come in a few weeks now. Your fix is definitely not the right
fix though, as the socket pool should be created with the right lock
operations pointer right away, the pointer should not be changed
after the fact.
The risk here is to leak some skbs. Maybe your application work, but
maybe you leak some skbs every time you close the file descriptor.
The skbs are only allocated and freed during socket or interface
creations, the rest of the time, they move from pool to pool.
>
> >
> > > They will never get cleared if the application crashes If I am
> > > not mistaken.
> >
> > Once again: when an application crashes, the file descriptors are
> > automatically closed by Xenomai, you do not need to care about this
> > case.
> What I am seeing is that when the reference count is above 1 when the
> application closes/crashes, the close operation of the rtdm socket never get's
> called, neither when doing an explicit close system call on the socket which
> still had a reference count above 1.
>
> When I disable the skb pool reference counting for AF_PACKET it basically
> works as it should. When the application closes the socket or crashes the
> close op get's called and the skb's release.
So, the problem fixes itself when fixing the first problem. So,
again, this is not the problem you should care about.
--
Gilles.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 811 bytes
Desc: not available
URL: <http://xenomai.org/pipermail/xenomai/attachments/20150604/e2c3b08e/attachment.sig>
next prev parent reply other threads:[~2015-06-04 11:20 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-03 12:56 [Xenomai] Problem with RTNET Packet Socket (or RTDM in general) in Xenomai 3 Marc Strämke
2015-06-03 13:02 ` Gilles Chanteperdrix
2015-06-03 17:09 ` Marc Strämke
2015-06-04 10:41 ` [Xenomai] rtnet locking/socket SKBs Marc Strämke
2015-06-04 10:56 ` Gilles Chanteperdrix
2015-06-04 11:09 ` Marc Strämke
2015-06-04 11:12 ` [Xenomai] [PATCH] Proof of concept: disable locking in af_packet skb pool Marc Strämke
2015-06-04 14:15 ` Gilles Chanteperdrix
2015-06-04 11:20 ` Gilles Chanteperdrix [this message]
2015-06-04 11:31 ` [Xenomai] rtnet locking/socket SKBs Gilles Chanteperdrix
2015-06-04 12:35 ` Marc Strämke
2015-06-04 12:37 ` Gilles Chanteperdrix
2015-06-04 12:40 ` Marc Strämke
2015-06-04 14:07 ` Gilles Chanteperdrix
2015-09-27 21:32 ` Gilles Chanteperdrix
2015-09-29 21:59 ` Gilles Chanteperdrix
2015-09-30 14:33 ` Marc Strämke
2015-09-30 14:41 ` Gilles Chanteperdrix
2015-09-30 14:44 ` Marc Strämke
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=20150604112034.GT27570@hermes.click-hack.org \
--to=gilles.chanteperdrix@xenomai.org \
--cc=marc.straemke@eltropuls.de \
--cc=xenomai@xenomai.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 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.