All of lore.kernel.org
 help / color / mirror / Atom feed
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>,
	Alexander Gordeev <lasaine@lvk.cs.msu.su>
Subject: [PATCHv5 00/17] pps: several fixes and improvements
Date: Wed, 24 Nov 2010 19:15:38 +0300	[thread overview]
Message-ID: <cover.1290599843.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-4 are bugfixes.
Patches 5-12 are other improvements to PPS subsystem.
Patches 13-15 add kernel consumer support.
Patch 16 adds parallel port PPS client.
Patch 17 adds parallel port PPS generator.

You can find description for my previous patchset (it describes patches
13-17 in more detailed) here: http://lkml.org/lkml/2010/2/24/189

This patchset is tested against the vanilla 2.6.36 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 13-15, others are ok.

Changelog
v4 -> v5:
 * drop patch that adds PPS workqueue, it needs some more thinking
 * replace patch that stops disabling interrupts with a lighter version
 * add patch 5 which ensures that dcd_change() will never be called
   before tty_ldisc_open() or after tty_ldisc_close()
 * fix patch 7: convert all remaining prints
 * use BUG_ON only in pps_event
 * use "canonical" error-handling style in pps_tty_open

Alexander Gordeev (17):
  pps: trivial fixes
  pps: declare variables where they are used in switch
  pps: fix race in PPS_FETCH handler
  pps: unify timestamp gathering
  tty: don't allow ldisc dcd_change() after ldisc halt
  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/char/tty_io.c                    |    1 +
 drivers/char/tty_ldisc.c                 |    7 +
 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          |   54 ++---
 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              |   23 +-
 include/linux/time.h                     |    2 +
 include/linux/timex.h                    |    1 +
 include/linux/tty.h                      |    1 +
 include/linux/tty_ldisc.h                |    7 +-
 kernel/time/ntp.c                        |  425 ++++++++++++++++++++++++++++-
 kernel/time/timekeeping.c                |   38 +++
 26 files changed, 1387 insertions(+), 293 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


             reply	other threads:[~2010-11-24 16:25 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-24 16:15 Alexander Gordeev [this message]
2010-11-24 16:15 ` [PATCHv5 01/17] pps: trivial fixes Alexander Gordeev
2010-11-24 16:15 ` [PATCHv5 02/17] pps: declare variables where they are used in switch Alexander Gordeev
2010-11-24 16:15 ` [PATCHv5 03/17] pps: fix race in PPS_FETCH handler Alexander Gordeev
2010-11-24 16:15 ` [PATCHv5 04/17] pps: unify timestamp gathering Alexander Gordeev
2010-11-24 16:15 ` [PATCHv5 05/17] tty: don't allow ldisc dcd_change() after ldisc halt Alexander Gordeev
2010-11-24 16:43   ` Alan Cox
2010-11-24 22:38     ` Alexander Gordeev
2010-11-24 22:36       ` Alan Cox
2010-11-25 13:30         ` Alexander Gordeev
2010-11-25 14:03           ` Alan Cox
2010-12-15 16:13             ` Alexander Gordeev
2010-11-24 16:15 ` [PATCHv5 06/17] pps: access pps device by direct pointer Alexander Gordeev
2010-12-16 15:52   ` Rodolfo Giometti
2010-12-16 21:58     ` Alexander Gordeev
2010-11-24 16:15 ` [PATCHv5 07/17] pps: convert printk/pr_* to dev_* Alexander Gordeev
2010-11-24 16:15 ` [PATCHv5 08/17] pps: move idr stuff to pps.c Alexander Gordeev
2010-12-16 15:53   ` Rodolfo Giometti
2010-11-24 16:15 ` [PATCHv5 09/17] pps: do not disable interrupts for idr operations Alexander Gordeev
2010-12-16 15:53   ` Rodolfo Giometti
2010-11-24 16:15 ` [PATCHv5 10/17] pps: use BUG_ON for kernel API safety checks Alexander Gordeev
2010-11-24 16:15 ` [PATCHv5 11/17] pps: simplify conditions a bit Alexander Gordeev
2010-11-24 16:15 ` [PATCHv5 12/17] pps: timestamp is always passed to dcd_change() Alexander Gordeev
2010-11-24 16:15 ` [PATCHv5 13/17] ntp: add hardpps implementation Alexander Gordeev
2010-11-24 16:15 ` [PATCHv5 14/17] pps: capture MONOTONIC_RAW timestamps as well Alexander Gordeev
2010-11-24 16:49   ` Thomas Gleixner
2010-11-25  9:55     ` Alexander Gordeev
2010-11-24 16:15 ` [PATCHv5 15/17] pps: add kernel consumer support Alexander Gordeev
2010-12-16 15:55   ` Rodolfo Giometti
2010-11-24 16:15 ` [PATCHv5 16/17] pps: add parallel port PPS client Alexander Gordeev
2010-12-16 15:58   ` Rodolfo Giometti
2010-11-24 16:15 ` [PATCHv5 17/17] pps: add parallel port PPS signal generator Alexander Gordeev
2010-12-16 16:02   ` Rodolfo Giometti

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.1290599843.git.lasaine@lvk.cs.msu.su \
    --to=lasaine@lvk.cs.msu.su \
    --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 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.