[PATCH v4 00/19] Slices and fastboot over UDP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a new round of the series adding fastboot over ethernet to
barebox. Compared to the last version this contains some conceptual
changes. First of all we no longer need executing pollers inside of
pollers. Hopefully this makes it easier to follow the execution flow.
Instead workqueues help to execute possibly longer living code with
dependencies to other devices. Workqueues are used to trigger work
from pollers. This is then executed when the command slice, previously
known as idle slice, is released. To make sure pollers don't do things
they are not allowed to we now have a assert_command_context() macro
which warns when it is called from a poller. This is added to most
filesystem operations as these definitely shouldn't be called from
pollers. Besides fastboot over UDP also fastboot over USB and RATP
are converted to use workqueues, so these also no longer call the
commands they execute from pollers.

To give an overview how barebox now handles pseudo parallel execution
I wrote some documentation, see the last patch.

Changes since last version:

- add workqueue interface
- convert fastboot USB and RATP to no longer call commands from pollers
- add Documentation


Daniel Glöckner (2):
  defconfigs: update renamed fastboot options
  fastboot: rename usbgadget.fastboot_* variables to fastboot.*

Edmund Henniges (1):
  fastboot net: implement fastboot over UDP

Sascha Hauer (16):
  Introduce slices
  Add workqueues
  ratp: Switch to workqueues
  net: Add a slice to struct eth_device
  net: mdiobus: Add slice
  usb: Add a slice to usb host controllers
  usbnet: Add slice
  net: Call net_poll() in a poller
  net: reply to ping requests
  usbnet: Be more friendly in the receive path
  globalvar: Add helper for deprecated variable names
  fastboot: remove double print
  usb: fastboot: execute commands in command context
  Add WARN_ONCE() macro
  fs: Warn when filesystem operations are called from a poller
  Documentation: Add document for parallel execution in barebox

 Documentation/devel/devel.rst              |  14 +
 Documentation/devel/parallel-execution.rst |  92 ++++
 Documentation/index.rst                    |   1 +
 Documentation/user/usb.rst                 |   4 +-
 arch/arm/configs/imx23_defconfig           |   2 +-
 arch/arm/configs/imx28_defconfig           |   2 +-
 arch/arm/configs/imx_v7_defconfig          |   2 +-
 arch/arm/configs/imx_v8_defconfig          |   2 +-
 arch/arm/configs/kindle-mx50_defconfig     |   2 +-
 arch/arm/configs/omap_defconfig            |   2 +-
 arch/arm/configs/zii_vf610_dev_defconfig   |   2 +-
 commands/Kconfig                           |   8 +
 commands/usbgadget.c                       |   2 +-
 common/Makefile                            |   2 +
 common/fastboot.c                          |  30 +-
 common/globalvar.c                         |  54 ++-
 common/hush.c                              |   6 +
 common/poller.c                            |   9 +-
 common/ratp/ratp.c                         |  57 ++-
 common/slice.c                             | 335 ++++++++++++++
 common/startup.c                           |   3 +
 common/usbgadget.c                         |  16 +-
 common/workqueue.c                         |  48 ++
 drivers/net/phy/mdio_bus.c                 |  43 ++
 drivers/net/usb/usbnet.c                   |  22 +-
 drivers/usb/core/usb.c                     |  12 +-
 drivers/usb/gadget/f_fastboot.c            |  49 +-
 fs/fs.c                                    |  35 ++
 fs/nfs.c                                   |   2 -
 fs/tftp.c                                  |   2 -
 include/asm-generic/bug.h                  |  13 +
 include/fastboot.h                         |   6 +
 include/fastboot_net.h                     |  12 +
 include/globalvar.h                        |   5 +
 include/linux/phy.h                        |  38 +-
 include/net.h                              |  11 +-
 include/ratp_bb.h                          |   1 -
 include/slice.h                            |  42 ++
 include/usb/usb.h                          |   8 +-
 include/usb/usbnet.h                       |   3 +
 include/work.h                             |  38 ++
 lib/readline.c                             |   6 +-
 net/Kconfig                                |  10 +
 net/Makefile                               |   1 +
 net/dhcp.c                                 |   1 -
 net/dns.c                                  |   1 -
 net/eth.c                                  |  84 +++-
 net/fastboot.c                             | 515 +++++++++++++++++++++
 net/net.c                                  |  60 ++-
 net/netconsole.c                           |   4 +-
 net/nfs.c                                  |   1 -
 net/ping.c                                 |   2 -
 net/sntp.c                                 |   2 -
 53 files changed, 1607 insertions(+), 117 deletions(-)
 create mode 100644 Documentation/devel/devel.rst
 create mode 100644 Documentation/devel/parallel-execution.rst
 create mode 100644 common/slice.c
 create mode 100644 common/workqueue.c
 create mode 100644 include/fastboot_net.h
 create mode 100644 include/slice.h
 create mode 100644 include/work.h
 create mode 100644 net/fastboot.c

-- 
2.27.0


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox




[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux