All of lore.kernel.org
 help / color / mirror / Atom feed
* [Ksummit-discuss] [TECH TOPIC] Addressing complex dependencies and semantics (v2)
@ 2016-07-27 16:50 Luis R. Rodriguez
  2016-07-27 17:26 ` Mark Brown
                   ` (7 more replies)
  0 siblings, 8 replies; 111+ messages in thread
From: Luis R. Rodriguez @ 2016-07-27 16:50 UTC (permalink / raw)
  To: ksummit-discuss
  Cc: rafael.j.wysocki, Mauro Carvalho Chehab, vegard.nossum,
	Valentin Rothberg, Marek Szyprowski

(first e-mail bounced)

Rafael has proposed has a set of patches to help deal with functional
dependencies between devices to help with power management. Mauro has
spoken briefly before over the media controller feature graph used to help
build relationship between complex dynamic dependencies. Dmitry has taken on
to help enable asynchronous probe, however for built-in devices this requires
very specific platform knowledge otherwise using async probe will blow up
your kernel -- if you get it right though, using async probe can help with
boot. Even if you sort things out well -- there are current limitations with
ordering semantics available, case in point the x86 IOMMUs already have a small
sort run which expand beyond the core init entries allowed, and on top of this
the you still have device driver dependencies which are implicitly setting
order via link order: consider the ordering between AMD IOMMUv1, AMD IOMMUv2,
AMD KFD, and AMD radeon. This has made us realize that at the module front the
current 2 levels of init calls limits our ordering semantics leaving only link
order as a last measure when things are built-in. Likewise I've recently have
had to look into dependency issues early in boot been due to differences
between paravirtualization and non-PV kernels, this lead to some current work
to help generalize custom section uses (linker tables) and then for us to
consider expanding x86 semantics early in boot to address some of the
shortcomings implicit by the some paravirtualized boot path.

The goal behind Rafael's work's goal is essentially to avoid code duplication
(as without doing that in the core many drivers potentially need to do the same
thing in the same way) and help to address the asynchronous system
suspend/resume case that cannot be addressed by any driver by itself anyway.
The effort behind Rafael's, Mauro's, Dmitry's and my work are all independent
however the patterns are very similar: addressing complex dependencies and
relationships at run time and available semantics for these.

This begs a few questions:

 o Are there generic issues here ?
 o Are there generic solutions possible ?
 o What advanced techniques are out there to deal with this and how
   are efforts in those domains going ?

As an example of taste for the last item, consider Vegard Nossum's involvement
with a SAT solver (picosat) for AFL fuzzing with ext4 on built-in kernels --
and the possibility to share some of the tools to address some of the
dependencies here. As it stands kconfig's semantics are a bit of a mess, and
in turn often tools have to do a bit of inference work due to some of this,
part if this problem is one reason why current kconfig-sat efforts are a bit
stalled.

Benefits for addressing some of these topics generally has quite a bit of
uses in different domains:

  o Speeding up boot time
  o Avoiding dead code, or correctness
  o Shrinking kernel size

This is a pretty generally broad topic, and it does cross subsystems,
I'm proposing it as a TECH TOPIC given that I had already poked Dmitry,
Mauro, and Rafael in February this year about a LPC microconference
about this sort of stuff as I thought that would have been a better venue --
however even early then (February !) it seems they were busy with existing LPC
microconferences. I recently poked them and they seem to agree discussing this
somehow at KS would be good. Due to existing time constraints at LPC, but given
most interested folks may be at KS or Plumbers, it'd be good to use shared time
at KS and LPC to get folks to organize ideas, problems, and solutions and in a
more adhoc manner, and then enable organically folks interested to organize and
discuss short term and long term roadmaps on respective work items. Its unclear
yet if there is a very CORE TOPIC here -- my guess would be that if there were
we'd find out at the next KS, but not this one. A workshop for this might
help.

Folks required to help with these topics:

  o Dmitry Torokhov <dmitry.torokhov@gmail.com> (async probe)
  o "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> (functional dependencies)
  o Marek Szyprowski <m.szyprowski@samsung.com> (taking on some of
Rafael's previous work)
  o Mauro Carvalho Chehab <mchehab@osg.samsung.com> (feature graph)
  o Vegard Nossum <vegard.nossum@gmail.com> (SAT)
  o Valentin Rothberg <valentinrothberg@gmail.com>  (wary of some
kconfig issues)

  Luis

^ permalink raw reply	[flat|nested] 111+ messages in thread

end of thread, other threads:[~2016-11-04  6:53 UTC | newest]

Thread overview: 111+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-27 16:50 [Ksummit-discuss] [TECH TOPIC] Addressing complex dependencies and semantics (v2) Luis R. Rodriguez
2016-07-27 17:26 ` Mark Brown
2016-07-27 17:58   ` Luis R. Rodriguez
2016-07-27 18:03     ` Mark Brown
2016-07-27 19:20       ` Luis R. Rodriguez
2016-07-28  0:54         ` Rafael J. Wysocki
2016-07-28 10:41           ` Laurent Pinchart
2016-07-28 10:54             ` Hans Verkuil
2016-07-28 11:03               ` Laurent Pinchart
2016-07-28 11:46                 ` Jan Kara
2016-07-28 15:16                   ` Mark Brown
2016-07-28 16:00                   ` Laurent Pinchart
2016-08-02  8:32                     ` Jan Kara
2016-08-03 14:17                     ` Alexandre Belloni
2016-07-30  1:59                   ` Steven Rostedt
2016-08-01 13:12                     ` Laurent Pinchart
2016-07-28 20:12                 ` Lars-Peter Clausen
2016-07-28 20:38                   ` Mark Brown
2016-08-01 13:15                   ` Laurent Pinchart
2016-07-28 14:36               ` Rafael J. Wysocki
2016-07-29  7:33             ` Hans Verkuil
2016-08-01 13:03               ` Laurent Pinchart
2016-08-01 13:17                 ` Hans Verkuil
2016-08-04  8:22             ` Jani Nikula
2016-08-04  9:50               ` Greg KH
2016-08-04 10:20                 ` Mark Brown
2016-08-04 10:27                   ` Jani Nikula
2016-08-05  2:59                   ` Rob Herring
2016-08-05  9:01                     ` Arnd Bergmann
2016-08-05 10:54                       ` Greg KH
2016-08-05 11:31                         ` Andrzej Hajda
2016-08-05 11:58                           ` Mark Brown
2016-08-05 13:43                           ` Greg KH
2016-08-05 19:27                         ` Rob Herring
2016-08-09  8:08                 ` Daniel Vetter
2016-08-09  8:17                   ` Greg KH
2016-08-09 12:04                     ` Daniel Vetter
2016-08-04 12:37       ` Geert Uytterhoeven
2016-08-04 15:53         ` Mark Brown
2016-07-28 21:49     ` Lars-Peter Clausen
2016-07-29  3:50       ` Greg KH
2016-07-29  7:45       ` Hans Verkuil
2016-07-29  7:55         ` Lars-Peter Clausen
2016-08-01 13:06           ` Laurent Pinchart
2016-07-29 11:13         ` Mark Brown
2016-08-01 13:09           ` Laurent Pinchart
2016-08-01 13:14             ` Lars-Peter Clausen
2016-08-01 13:19               ` Laurent Pinchart
2016-08-01 13:21             ` Hans Verkuil
2016-08-01 13:26               ` Laurent Pinchart
2016-08-01 13:35                 ` Hans Verkuil
2016-08-01 13:38                   ` Laurent Pinchart
2016-08-01 13:51                     ` Hans Verkuil
2016-08-01 17:15                       ` Laurent Pinchart
2016-08-01 13:33               ` Lars-Peter Clausen
2016-08-01 13:55                 ` Mauro Carvalho Chehab
2016-08-01 14:41                   ` Lars-Peter Clausen
2016-08-01 14:44                   ` Andrzej Hajda
2016-08-01 14:54                     ` Lars-Peter Clausen
2016-08-01 15:20                       ` Mark Brown
2016-08-01 15:34                       ` Andrzej Hajda
2016-08-01 15:43                         ` Lars-Peter Clausen
2016-08-01 16:18                           ` Andrzej Hajda
2016-08-01 17:06                             ` Mark Brown
2016-08-01 18:21                               ` Lars-Peter Clausen
2016-08-02 11:45                                 ` Andrzej Hajda
2016-08-01 18:33                               ` Andrzej Hajda
2016-08-01 18:48                                 ` Mark Brown
2016-08-01 19:42                                   ` Andrzej Hajda
2016-08-01 20:05                                     ` Lars-Peter Clausen
2016-08-02  8:57                                       ` Takashi Iwai
2016-08-01 17:40                       ` Laurent Pinchart
2016-08-02  7:38                     ` Greg KH
2016-08-01 19:03           ` Luis R. Rodriguez
2016-08-02  0:01             ` Rafael J. Wysocki
2016-08-02  0:56               ` Luis R. Rodriguez
2016-08-02  1:03                 ` Dmitry Torokhov
2016-08-02  8:30                   ` Jiri Kosina
2016-08-02  9:41                 ` Hannes Reinecke
2016-08-02  9:48                   ` Jiri Kosina
2016-08-02 11:50                     ` Takashi Iwai
2016-08-09  9:57             ` Jörg Rödel
2016-08-09 16:08               ` James Bottomley
2016-08-09 16:11                 ` James Bottomley
2016-08-09 16:51                   ` Luis R. Rodriguez
2016-08-09 17:05                     ` David Woodhouse
2016-08-09 17:12                     ` James Bottomley
2016-08-09 16:53                   ` Jörg Rödel
2016-08-09 18:06               ` Luis R. Rodriguez
2016-08-10 15:21                 ` Jörg Rödel
2016-08-10 16:42                   ` Luis R. Rodriguez
2016-08-10 21:37                     ` Jörg Rödel
2016-08-12  7:33               ` Linus Walleij
2016-07-27 18:50 ` Dmitry Torokhov
2016-07-28 10:43 ` Marc Zyngier
2016-07-28 10:51 ` Laurent Pinchart
2016-07-28 23:43   ` Luis R. Rodriguez
2016-08-01 12:44     ` Laurent Pinchart
2016-07-28 11:18 ` Mauro Carvalho Chehab
2016-07-28 11:24   ` Laurent Pinchart
2016-07-28 12:25     ` Mauro Carvalho Chehab
2016-07-28 16:04       ` Laurent Pinchart
2016-07-29  0:00         ` Luis R. Rodriguez
2016-08-01 12:50           ` Laurent Pinchart
2016-08-01 20:32             ` Luis R. Rodriguez
2016-07-29 13:57 ` Andrzej Hajda
2016-09-07 16:40   ` Kevin Hilman
2016-08-01 14:03 ` Marek Szyprowski
2016-11-03 18:43   ` Laurent Pinchart
2016-11-04  6:53     ` Marek Szyprowski
2016-09-08 21:03 ` Frank Rowand

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.