From: Arnd Bergmann <arnd@arndb.de>
To: opw-kernel@googlegroups.com
Cc: Aya Mahfouz <mahfouz.saif.elyazal@gmail.com>,
ursula.braun@de.ibm.com, blaschka@linux.vnet.ibm.com,
schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com,
linux390@de.ibm.com, linux-s390@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [OPW kernel] [PATCH v3] drivers: s390: net: ctcm: migrate variables to handle y2038 problem
Date: Mon, 03 Nov 2014 10:40:30 +0100 [thread overview]
Message-ID: <4030959.mWGrEP99VU@wuerfel> (raw)
In-Reply-To: <20141101001614.GA9494@localhost.localdomain>
On Saturday 01 November 2014 02:16:14 Aya Mahfouz wrote:
> This patch is concerned with migrating the time variables for the s390
> network driver. The changes handle the y2038 problem where timespec will
> overflow in the year 2038. timespec was replaced by unsigned long and
> all time variables get their values from the jiffies global variable.
> This was done for the sake of speed and efficiency.
>
> Signed-off-by: Aya Mahfouz <mahfouz.saif.elyazal@gmail.com>
> ---
> v1: Arnd has advised me to provide you with options for time
> calculation. The first option: "accuracy" is used in this
> patch. The second option: "speed" can be done through
> jiffies.
>
> v2: Moved on to the speed option. Let me know if I explicitly
> need to include the jiffies header. The module compiles with
> no problems on my side.
>
> v3: Handled the error pointed out by Ursula. The current version
> does not handle overflows. There are two solutions for this.
> The first is to use jiffies_64 since s/390 is a 64-bit
> architecture after all. The second is to use wrapper functions
> like time_before and time_after. Two files were added too.
> They are: ctcm_main.c and netiucv.c. This patch could be sent
> as a patchset in its final version for convenience.
Hi Aya,
The patch looks correct to me now,
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
There is one small change that you could do for efficiency:
>
> - duration =
> - (done_stamp.tv_sec - ch->prof.send_stamp.tv_sec) * 1000000 +
> - (done_stamp.tv_nsec - ch->prof.send_stamp.tv_nsec) / 1000;
> + duration = jiffies_to_usecs(done_stamp - ch->prof.send_stamp);
> if (duration > ch->prof.tx_time)
> ch->prof.tx_time = duration;
>
This means you are doing the jiffies_to_usecs conversion for every
packet. s390 has a fast multiplication instruction, so it won't matter
in practice, but if you do more conversions like this, a better approach
is to store the 'jiffies' value in ch->prof.tx_time and only convert
it to another unit when printing the number.
Arnd
prev parent reply other threads:[~2014-11-03 9:40 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-01 0:16 [PATCH v3] drivers: s390: net: ctcm: migrate variables to handle y2038 problem Aya Mahfouz
2014-11-03 9:32 ` Ursula Braun
2014-11-03 9:40 ` Arnd Bergmann [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=4030959.mWGrEP99VU@wuerfel \
--to=arnd@arndb.de \
--cc=blaschka@linux.vnet.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux390@de.ibm.com \
--cc=mahfouz.saif.elyazal@gmail.com \
--cc=opw-kernel@googlegroups.com \
--cc=schwidefsky@de.ibm.com \
--cc=ursula.braun@de.ibm.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.