From: Alexander Gordeev <lasaine@lvk.cs.msu.su>
To: linux-kernel@vger.kernel.org
Cc: "Nikita V\. Youshchenko" <yoush@cs.msu.su>,
linuxpps@ml.enneenne.com,
Rodolfo Giometti <giometti@enneenne.com>,
Andrew Morton <akpm@linux-foundation.org>,
Alexander Gordeev <lasaine@lvk.cs.msu.su>
Subject: [PATCHv6 00/16] pps: several fixes and improvements
Date: Fri, 17 Dec 2010 22:54:24 +0300 [thread overview]
Message-ID: <cover.1292604060.git.lasaine@lvk.cs.msu.su> (raw)
This patchset contains several changes that improve an overall
design/performance of PPS subsystem. I'd like these patches to be
merged mainline if no one objects.
Patches 1-3 are bugfixes.
Patches 4-11 are other improvements to PPS subsystem.
Patches 12-14 add kernel consumer support.
Patch 15 adds parallel port PPS client.
Patch 16 adds parallel port PPS generator.
You can find description for my previous patchset (it describes patches
12-16 in more detail) here: http://lkml.org/lkml/2010/2/24/189
This patchset is tested against the vanilla 2.6.37-rc6 kernel. But we are
actually using it on 2.6.33.7-rt29 rt-preempt kernel most of the time.
Those who are interested in other versions of the patchset can find
them in my git repository:
git://github.com/ago/linux-2.6.git
There is one problem however: kernel consumer works bad (if enabled)
when CONFIG_NO_HZ is enabled. The reason for this is commit
a092ff0f90cae22b2ac8028ecd2c6f6c1a9e4601. Without it hardpps() is able
to sync to 1us precision in about 10 seconds. With CONFIG_NO_HZ it is
not syncing at all. This only affects patches 12-14, others are ok.
Changelog
v5 -> v6:
* drop patch that fixes a race condition in tty code because it's already
fixed in 2.6.37-rc2
* fix getnstime_raw_and_real() comments (thanks Thomas Gleixner for the note)
Alexander Gordeev (16):
pps: trivial fixes
pps: declare variables where they are used in switch
pps: fix race in PPS_FETCH handler
pps: unify timestamp gathering
pps: access pps device by direct pointer
pps: convert printk/pr_* to dev_*
pps: move idr stuff to pps.c
pps: do not disable interrupts for idr operations
pps: use BUG_ON for kernel API safety checks
pps: simplify conditions a bit
pps: timestamp is always passed to dcd_change()
ntp: add hardpps implementation
pps: capture MONOTONIC_RAW timestamps as well
pps: add kernel consumer support
pps: add parallel port PPS client
pps: add parallel port PPS signal generator
Documentation/ioctl/ioctl-number.txt | 2 +-
Documentation/pps/pps.txt | 46 ++++
Documentation/serial/tty.txt | 2 +-
drivers/pps/Kconfig | 10 +
drivers/pps/Makefile | 2 +-
drivers/pps/clients/Kconfig | 7 +
drivers/pps/clients/Makefile | 1 +
drivers/pps/clients/pps-ktimer.c | 44 ++--
drivers/pps/clients/pps-ldisc.c | 59 ++--
drivers/pps/clients/pps_parport.c | 247 +++++++++++++++++
drivers/pps/generators/Kconfig | 17 ++
drivers/pps/generators/Makefile | 9 +
drivers/pps/generators/pps_gen_parport.c | 275 +++++++++++++++++++
drivers/pps/kapi.c | 221 +++++-----------
drivers/pps/pps.c | 177 ++++++++++---
include/linux/pps.h | 7 +
include/linux/pps_kernel.h | 54 +++-
include/linux/serial_core.h | 5 +-
include/linux/time.h | 2 +
include/linux/timex.h | 1 +
include/linux/tty_ldisc.h | 7 +-
kernel/time/ntp.c | 425 ++++++++++++++++++++++++++++-
kernel/time/timekeeping.c | 39 +++
23 files changed, 1374 insertions(+), 285 deletions(-)
create mode 100644 drivers/pps/clients/pps_parport.c
create mode 100644 drivers/pps/generators/Kconfig
create mode 100644 drivers/pps/generators/Makefile
create mode 100644 drivers/pps/generators/pps_gen_parport.c
--
1.7.2.3
next reply other threads:[~2010-12-17 19:55 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-17 19:54 Alexander Gordeev [this message]
2010-12-17 19:54 ` [PATCHv6 01/16] pps: trivial fixes Alexander Gordeev
2010-12-17 19:54 ` [PATCHv6 02/16] pps: declare variables where they are used in switch Alexander Gordeev
2010-12-17 19:54 ` [PATCHv6 03/16] pps: fix race in PPS_FETCH handler Alexander Gordeev
2010-12-17 19:54 ` [PATCHv6 04/16] pps: unify timestamp gathering Alexander Gordeev
2010-12-17 19:54 ` [PATCHv6 05/16] pps: access pps device by direct pointer Alexander Gordeev
2010-12-17 19:54 ` [PATCHv6 06/16] pps: convert printk/pr_* to dev_* Alexander Gordeev
2010-12-17 19:54 ` [PATCHv6 07/16] pps: move idr stuff to pps.c Alexander Gordeev
2010-12-18 0:13 ` Andrew Morton
2010-12-18 1:07 ` Alexander Gordeev
2010-12-18 1:18 ` Andrew Morton
2010-12-17 19:54 ` [PATCHv6 08/16] pps: do not disable interrupts for idr operations Alexander Gordeev
2010-12-17 19:54 ` [PATCHv6 09/16] pps: use BUG_ON for kernel API safety checks Alexander Gordeev
2010-12-17 19:54 ` [PATCHv6 10/16] pps: simplify conditions a bit Alexander Gordeev
2010-12-17 19:54 ` [PATCHv6 11/16] pps: timestamp is always passed to dcd_change() Alexander Gordeev
2010-12-17 19:54 ` [PATCHv6 12/16] ntp: add hardpps implementation Alexander Gordeev
2010-12-17 19:54 ` [PATCHv6 13/16] pps: capture MONOTONIC_RAW timestamps as well Alexander Gordeev
2010-12-17 19:54 ` [PATCHv6 14/16] pps: add kernel consumer support Alexander Gordeev
2010-12-17 19:54 ` [PATCHv6 15/16] pps: add parallel port PPS client Alexander Gordeev
2010-12-18 0:17 ` Andrew Morton
2010-12-18 0:50 ` Alexander Gordeev
2010-12-18 1:13 ` Andrew Morton
2010-12-17 19:54 ` [PATCHv6 16/16] pps: add parallel port PPS signal generator Alexander Gordeev
2010-12-18 0:18 ` Andrew Morton
2010-12-18 0:52 ` Alexander Gordeev
2010-12-18 0:19 ` [PATCHv6 00/16] pps: several fixes and improvements Andrew Morton
2010-12-18 1:00 ` Alexander Gordeev
2010-12-18 1:14 ` Andrew Morton
2010-12-20 11:54 ` [PATCHv7 00/16] changed some patches Alexander Gordeev
2010-12-20 11:54 ` [PATCHv7 08/16] pps: make idr lock a mutex and protect idr_pre_get Alexander Gordeev
2010-12-20 11:54 ` [PATCHv7 12/16] ntp: add hardpps implementation Alexander Gordeev
2010-12-20 11:54 ` [PATCHv7 13/16] pps: capture MONOTONIC_RAW timestamps as well Alexander Gordeev
2010-12-20 11:54 ` [PATCHv7 14/16] pps: add kernel consumer support Alexander Gordeev
2010-12-20 11:54 ` [PATCHv7 15/16] pps: add parallel port PPS client Alexander Gordeev
2010-12-20 11:54 ` [PATCHv7 16/16] pps: add parallel port PPS signal generator Alexander Gordeev
2010-12-24 0:35 ` Andrew Morton
2010-12-24 1:37 ` Alexander Gordeev
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=cover.1292604060.git.lasaine@lvk.cs.msu.su \
--to=lasaine@lvk.cs.msu.su \
--cc=akpm@linux-foundation.org \
--cc=giometti@enneenne.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxpps@ml.enneenne.com \
--cc=yoush@cs.msu.su \
/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
Powered by JetHome