From: "'Marcelo Ricardo Leitner'" <marcelo.leitner@gmail.com>
To: David Laight <David.Laight@ACULAB.COM>
Cc: 'Xin Long' <lucien.xin@gmail.com>,
network dev <netdev@vger.kernel.org>,
"linux-sctp@vger.kernel.org" <linux-sctp@vger.kernel.org>,
Neil Horman <nhorman@tuxdriver.com>,
Vlad Yasevich <vyasevich@gmail.com>,
"davem@davemloft.net" <davem@davemloft.net>
Subject: Re: [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams
Date: Tue, 24 Jan 2017 13:10:08 +0000 [thread overview]
Message-ID: <20170124131008.GH3781@localhost.localdomain> (raw)
In-Reply-To: <063D6719AE5E284EB5DD2968C1650D6DB026CAC6@AcuExch.aculab.com>
On Tue, Jan 24, 2017 at 12:34:06PM +0000, David Laight wrote:
> From: Marcelo Ricardo Leitner
> > Sent: 23 January 2017 18:48
> > On Mon, Jan 23, 2017 at 11:25:56AM +0000, David Laight wrote:
> > > From: Xin Long
> > > > Sent: 19 January 2017 17:19
> > > > This patch is to implement Sender-Side Procedures for the Add
> > > > Outgoing and Incoming Streams Request Parameter described in
> > > > rfc6525 section 5.1.5-5.1.6.
> > > >
> > > > It is also to add sockopt SCTP_ADD_STREAMS in rfc6525 section
> > > > 6.3.4 for users.
> > > ...
> > > > + out = params->sas_outstrms;
> > > > + in = params->sas_instrms;
> > > > +
> > > > + if (!out && !in)
> > > > + goto out;
> > > > +
> > > > + if (out) {
> > > > + __u16 nums = stream->outcnt + out;
> > >
> > > Make nums 'unsigned int', the code will be smaller and you can
> > > use the value for the overflow check.
> >
> > Smaller as in to avoid the sum below?
> >
> > >
> > > > + /* Check for overflow, can't use nums here */
> > > > + if (stream->outcnt + out > SCTP_MAX_STREAM)
> > > > + goto out;
>
> No, smaller as in not requiring the compiler to add instructions
> to mask (or worse sign extend) the result of the arithmetic expression
> to less than the number of bits in an 'int' when the result of the
> expression is to be kept in a register.
>
> The x86 is about the only modern cpu that has 8 and 16 bit arithmetic.
> For everything else you really don't want to do arithmetic on char
> and short unless you really want the wrapping to happen.
Okay thanks.
Marcelo
WARNING: multiple messages have this Message-ID (diff)
From: "'Marcelo Ricardo Leitner'" <marcelo.leitner@gmail.com>
To: David Laight <David.Laight@ACULAB.COM>
Cc: "'Xin Long'" <lucien.xin@gmail.com>,
network dev <netdev@vger.kernel.org>,
"linux-sctp@vger.kernel.org" <linux-sctp@vger.kernel.org>,
Neil Horman <nhorman@tuxdriver.com>,
Vlad Yasevich <vyasevich@gmail.com>,
"davem@davemloft.net" <davem@davemloft.net>
Subject: Re: [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter
Date: Tue, 24 Jan 2017 11:10:08 -0200 [thread overview]
Message-ID: <20170124131008.GH3781@localhost.localdomain> (raw)
In-Reply-To: <063D6719AE5E284EB5DD2968C1650D6DB026CAC6@AcuExch.aculab.com>
On Tue, Jan 24, 2017 at 12:34:06PM +0000, David Laight wrote:
> From: Marcelo Ricardo Leitner
> > Sent: 23 January 2017 18:48
> > On Mon, Jan 23, 2017 at 11:25:56AM +0000, David Laight wrote:
> > > From: Xin Long
> > > > Sent: 19 January 2017 17:19
> > > > This patch is to implement Sender-Side Procedures for the Add
> > > > Outgoing and Incoming Streams Request Parameter described in
> > > > rfc6525 section 5.1.5-5.1.6.
> > > >
> > > > It is also to add sockopt SCTP_ADD_STREAMS in rfc6525 section
> > > > 6.3.4 for users.
> > > ...
> > > > + out = params->sas_outstrms;
> > > > + in = params->sas_instrms;
> > > > +
> > > > + if (!out && !in)
> > > > + goto out;
> > > > +
> > > > + if (out) {
> > > > + __u16 nums = stream->outcnt + out;
> > >
> > > Make nums 'unsigned int', the code will be smaller and you can
> > > use the value for the overflow check.
> >
> > Smaller as in to avoid the sum below?
> >
> > >
> > > > + /* Check for overflow, can't use nums here */
> > > > + if (stream->outcnt + out > SCTP_MAX_STREAM)
> > > > + goto out;
>
> No, smaller as in not requiring the compiler to add instructions
> to mask (or worse sign extend) the result of the arithmetic expression
> to less than the number of bits in an 'int' when the result of the
> expression is to be kept in a register.
>
> The x86 is about the only modern cpu that has 8 and 16 bit arithmetic.
> For everything else you really don't want to do arithmetic on char
> and short unless you really want the wrapping to happen.
Okay thanks.
Marcelo
next prev parent reply other threads:[~2017-01-24 13:10 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-19 17:19 [PATCHv3 net-next 0/4] sctp: add sender-side procedures for stream reconf asoc reset and add streams Xin Long
2017-01-19 17:19 ` Xin Long
2017-01-19 17:19 ` [PATCHv3 net-next 1/4] sctp: add support for generating stream reconf ssn/tsn reset request chunk Xin Long
2017-01-19 17:19 ` Xin Long
2017-01-19 17:19 ` [PATCHv3 net-next 2/4] sctp: implement sender-side procedures for SSN/TSN Reset Request Parameter Xin Long
2017-01-19 17:19 ` Xin Long
2017-01-19 17:19 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing streams Xin Long
2017-01-19 17:19 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing streams request chunk Xin Long
2017-01-19 17:19 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Requ Xin Long
2017-01-19 17:19 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter Xin Long
2017-01-19 20:17 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Neil Horman
2017-01-19 20:17 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter Neil Horman
2017-01-19 22:18 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Marcelo Ricardo Leitner
2017-01-19 22:18 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter Marcelo Ricardo Leitner
2017-01-23 14:50 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Neil Horman
2017-01-23 14:50 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter Neil Horman
2017-01-19 21:47 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Marcelo Ricardo Leitner
2017-01-19 21:47 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter Marcelo Ricardo Leitner
2017-01-20 8:56 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Xin Long
2017-01-20 8:56 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter Xin Long
2017-01-20 11:43 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Marcelo Ricardo Leitner
2017-01-20 11:43 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter Marcelo Ricardo Leitner
2017-01-19 22:15 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Marcelo Ricardo Leitner
2017-01-19 22:15 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter Marcelo Ricardo Leitner
2017-01-20 8:51 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Xin Long
2017-01-20 8:51 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter Xin Long
2017-01-23 11:25 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams David Laight
2017-01-23 11:25 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter David Laight
2017-01-23 14:53 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Neil Horman
2017-01-23 14:53 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter Neil Horman
2017-01-23 16:02 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Marcelo Ricardo Leitner
2017-01-23 16:02 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter Marcelo Ricardo Leitner
2017-01-24 12:35 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams David Laight
2017-01-24 12:35 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter David Laight
2017-01-24 13:08 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams 'Marcelo Ricardo Leitner'
2017-01-24 13:08 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter 'Marcelo Ricardo Leitner'
2017-01-23 18:47 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Marcelo Ricardo Leitner
2017-01-23 18:47 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter Marcelo Ricardo Leitner
2017-01-24 12:34 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams David Laight
2017-01-24 12:34 ` [PATCHv3 net-next 4/4] sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter David Laight
2017-01-24 13:10 ` 'Marcelo Ricardo Leitner' [this message]
2017-01-24 13:10 ` 'Marcelo Ricardo Leitner'
2017-01-20 14:50 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing stre David Laight
2017-01-20 14:50 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing streams request chunk David Laight
2017-01-20 16:39 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing stre Marcelo Ricardo Leitner
2017-01-20 16:39 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing streams request chunk Marcelo Ricardo Leitner
2017-01-23 12:26 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing stre David Laight
2017-01-23 12:26 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing streams request chunk David Laight
2017-01-23 12:36 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing stre 'Marcelo Ricardo Leitner'
2017-01-23 12:36 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing streams request chunk 'Marcelo Ricardo Leitner'
2017-01-23 16:00 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing stre David Miller
2017-01-23 16:00 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing streams request chunk David Miller
2017-01-23 16:14 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing stre marcelo.leitner
2017-01-23 16:14 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing streams request chunk marcelo.leitner
2017-01-23 16:17 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing stre David Miller
2017-01-23 16:17 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing streams request chunk David Miller
2017-01-23 15:58 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing stre David Miller
2017-01-23 15:58 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing streams request chunk David Miller
2017-01-29 14:31 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing stre marcelo.leitner
2017-01-29 14:31 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing streams request chunk marcelo.leitner
2017-01-29 18:41 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing stre David Miller
2017-01-29 18:41 ` [PATCHv3 net-next 3/4] sctp: add support for generating stream reconf add incoming/outgoing streams request chunk David Miller
2017-01-19 22:02 ` [PATCHv3 net-next 2/4] sctp: implement sender-side procedures for SSN/TSN Reset Request Paramete Marcelo Ricardo Leitner
2017-01-19 22:02 ` [PATCHv3 net-next 2/4] sctp: implement sender-side procedures for SSN/TSN Reset Request Parameter Marcelo Ricardo Leitner
2017-01-20 8:21 ` [PATCHv3 net-next 2/4] sctp: implement sender-side procedures for SSN/TSN Reset Request Paramete Xin Long
2017-01-20 8:21 ` [PATCHv3 net-next 2/4] sctp: implement sender-side procedures for SSN/TSN Reset Request Parameter Xin Long
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=20170124131008.GH3781@localhost.localdomain \
--to=marcelo.leitner@gmail.com \
--cc=David.Laight@ACULAB.COM \
--cc=davem@davemloft.net \
--cc=linux-sctp@vger.kernel.org \
--cc=lucien.xin@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=nhorman@tuxdriver.com \
--cc=vyasevich@gmail.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.