1. 21 Feb, 2019 1 commit
  2. 09 Jan, 2019 1 commit
    • Minchan Kim's avatar
      zram: idle writeback fixes and cleanup · 1d69a3f8
      Minchan Kim authored
      This patch includes some fixes and cleanup for idle-page writeback.
      1. writeback_limit interface
      Now writeback_limit interface is rather conusing.  For example, once
      writeback limit budget is exausted, admin can see 0 from
      /sys/block/zramX/writeback_limit which is same semantic with disable
      writeback_limit at this moment.  IOW, admin cannot tell that zero came
      from disable writeback limit or exausted writeback limit.
      To make the interface clear, let's sepatate enable of writeback limit to
      another knob - /sys/block/zram0/writeback_limit_enable
      * before:
        while true :
          # to re-enable writeback limit once previous one is used up
          echo 0 > /sys/block/zram0/writeback_limit
          echo $((200<<20)) > /sys/block/zram0/writeback_limit
          .. # used up the writeback limit budget
      * new
        # To enable writeback limit, from the beginning, admin should
        # enable it.
        echo $((200<<20)) > /sys/block/zram0/writeback_limit
        echo 1 > /sys/block/zram/0/writeback_limit_enable
        while true :
          echo $((200<<20)) > /sys/block/zram0/writeback_limit
          .. # used up the writeback limit budget
      It's much strightforward.
      2. fix condition check idle/huge writeback mode check
      The mode in writeback_store is not bit opeartion any more so no need to
      use bit operations.  Furthermore, current condition check is broken in
      that it does writeback every pages regardless of huge/idle.
      3. clean up idle_store
      No need to use goto.
      [minchan@kernel.org: missed spin_lock_init]
        Link: http://lkml.kernel.org/r/20190103001601.GA255139@google.com
      Link: http://lkml.kernel.org/r/20181224033529.19450-1-minchan@kernel.orgSigned-off-by: default avatarMinchan Kim <minchan@kernel.org>
      Suggested-by: default avatarJohn Dias <joaodias@google.com>
      Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
      Cc: John Dias <joaodias@google.com>
      Cc: Srinivas Paladugu <srnvs@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
  3. 05 Jan, 2019 1 commit
  4. 28 Dec, 2018 4 commits
  5. 17 Dec, 2018 1 commit
    • Damien Le Moal's avatar
      block: update sysfs documentation · f9824952
      Damien Le Moal authored
      Add the description of the zoned, nr_zones and chunk_sectors sysfs queue
      attributes to Documentation/block/queue-sysfs.txt. The description of
      the zoned and chunk_sector attributes are mostly copied from
      ABI/testing/sysfs-block (added a typo fix). While at it, also fix a
      typo in the description of the io_poll_delay attribute.
      nr_zones description is also added to ABI/testing/sysfs-block and
      contact email address updated for the zoned attribute.
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
  6. 12 Dec, 2018 1 commit
  7. 11 Dec, 2018 1 commit
  8. 05 Dec, 2018 1 commit
  9. 01 Dec, 2018 1 commit
  10. 26 Nov, 2018 2 commits
    • Chao Yu's avatar
      f2fs: export migration_granularity sysfs entry · 34655575
      Chao Yu authored
      Add one sysfs entry to control migration granularity of GC in large
      section f2fs, it can be tuned to mitigate heavy overhead of migrating
      huge number of blocks in large section.
      Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    • Heikki Krogerus's avatar
      drivers: base: Introducing software nodes to the firmware node framework · 59abd836
      Heikki Krogerus authored
      Software node is a new struct fwnode_handle type that can be
      used to describe devices in kernel (software). It is meant
      to complement fwnodes representing real firmware nodes when
      they are incomplete (for example missing device properties)
      and to supply the primary fwnode when the firmware lacks
      hardware description for a device completely.
      The software node type is really meant to replace the
      currently used "property_set" struct fwnode_handle type. The
      handling of struct property_set is glued to the generic
      device property handling code, and it is not possible to
      create a struct property_set independently from the device
      that it is bind to. struct property_set is only created when
      device properties are added to already initialized struct
      device, and control of it is only possible from the generic
      property handling code.
      Software nodes are instead designed to be created
      independently from the device entries (struct device). It
      makes them much more flexible, as then the device meant to
      be bind to the node can be created at a later time, and from
      another location. It is also possible to bind multiple
      devices to a single software node if needed.
      The software node implementation also includes support for
      node hierarchy, which was the main motivation for this
      commit. The node hierarchy was something that was requested
      for the struct property_set, but it did not seem reasonable
      to try to extend the property_set support for that purpose.
      struct property_set was really meant only for device
      property handling like the name suggests.
      Support for struct property_set is not yet removed in this
      commit, but it will be in the following one.
      Signed-off-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
  11. 12 Nov, 2018 1 commit
  12. 07 Nov, 2018 1 commit
  13. 19 Oct, 2018 1 commit
  14. 17 Oct, 2018 1 commit
  15. 11 Oct, 2018 3 commits
  16. 09 Oct, 2018 1 commit
  17. 04 Oct, 2018 1 commit
  18. 02 Oct, 2018 2 commits
  19. 28 Sep, 2018 1 commit
    • Jon Flatley's avatar
      usb: core: added uevent for over-current · 201af55d
      Jon Flatley authored
      After commit 1cbd53c8 ("usb: core: introduce per-port over-current
      counters") usb ports expose a sysfs value 'over_current_count'
      to user space. This value on its own is not very useful as it requires
      manual polling.
      As a solution, fire a udev event from the usb hub device that specifies
      the values 'OVER_CURRENT_PORT' and 'OVER_CURRENT_COUNT' that indicate
      the path of the usb port where the over-current event occurred and the
      value of 'over_current_count' in sysfs. Additionally, call
      sysfs_notify() so the sysfs value supports poll().
      Signed-off-by: default avatarJon Flatley <jflat@chromium.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
  20. 24 Sep, 2018 3 commits
    • Joel Pepper's avatar
      usb: gadget: uvc: configfs: Add bFrameIndex attributes · b206548b
      Joel Pepper authored
      - Add bFrameIndex as a UVCG_FRAME_ATTR_RO for each frame size.
      - Automatically assign ascending bFrameIndex to each frame in a format.
      Before all "bFrameindex" attributes were set to "1" with no way to
      configure the gadget otherwise. This resulted in the host always
      negotiating for bFrameIndex 1 (i.e. the first frame size of the gadget).
      After the negotiation the host driver will set the user or application
      selected frame size, while the gadget is actually set to the first frame
      Now, when the containing format is linked into the streaming header,
      iterate over all child frame descriptors and assign ascending indices.
      The automatically assigned indices can be read from the new read only
      bFrameIndex configfs attribute in each frame descriptor item.
      Signed-off-by: default avatarJoel Pepper <joel.pepper@rwth-aachen.de>
      [Simplified documentation, renamed function, blank space update]
      Signed-off-by: Laurent Pinchart's avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Reviewed-by: Kieran Bingham's avatarKieran Bingham <kieran.bingham@ideasonboard.com>
    • Laurent Pinchart's avatar
      usb: gadget: uvc: configfs: Add bFormatIndex attributes · 61ff10e0
      Laurent Pinchart authored
      The UVC format description are numbered using the descriptor's
      bFormatIndex field. The index is used in UVC requests, and is thus
      needed to handle requests in userspace. Make it dynamically discoverable
      by exposing it in a bFormatIndex configfs attribute of the uncompressed
      and mjpeg format config items.
      The bFormatIndex value exposed through the attribute is stored in the
      config item private data. However, that value is never set: the driver
      instead computes the bFormatIndex value when linking the stream class
      header in the configfs hierarchy and stores it directly in the class
      descriptors in a separate structure. In order to expose the value
      through the configfs attribute, store it in the config item private data
      as well. This results in a small code simplification.
      Signed-off-by: Laurent Pinchart's avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Reviewed-by: Kieran Bingham's avatarKieran Bingham <kieran.bingham@ideasonboard.com>
    • Laurent Pinchart's avatar
      usb: gadget: uvc: configfs: Add interface number attributes · bf715448
      Laurent Pinchart authored
      The video control and video streaming interface numbers are needed in
      the UVC gadget userspace stack to reply to UVC requests. They are
      hardcoded to fixed values at the moment, preventing configurations with
      multiple functions.
      To fix this, make them dynamically discoverable by userspace through
      read-only configfs attributes in <function>/control/bInterfaceNumber and
      <function>/streaming/bInterfaceNumber respectively.
      Signed-off-by: Laurent Pinchart's avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Reviewed-by: Kieran Bingham's avatarKieran Bingham <kieran.bingham@ideasonboard.com>
  21. 20 Sep, 2018 1 commit
  22. 19 Sep, 2018 1 commit
  23. 14 Sep, 2018 1 commit
    • Marek Marczykowski-Górecki's avatar
      xen/balloon: add runtime control for scrubbing ballooned out pages · 197ecb38
      Marek Marczykowski-Górecki authored
      Scrubbing pages on initial balloon down can take some time, especially
      in nested virtualization case (nested EPT is slow). When HVM/PVH guest is
      started with memory= significantly lower than maxmem=, all the extra
      pages will be scrubbed before returning to Xen. But since most of them
      weren't used at all at that point, Xen needs to populate them first
      (from populate-on-demand pool). In nested virt case (Xen inside KVM)
      this slows down the guest boot by 15-30s with just 1.5GB needed to be
      returned to Xen.
      Add runtime parameter to enable/disable it, to allow initially disabling
      scrubbing, then enable it back during boot (for example in initramfs).
      Such usage relies on assumption that a) most pages ballooned out during
      initial boot weren't used at all, and b) even if they were, very few
      secrets are in the guest at that time (before any serious userspace
      kicks in).
      enabled by default), controlling default value for the new runtime
      Signed-off-by: Marek Marczykowski-Górecki's avatarMarek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
      Reviewed-by: Juergen Gross's avatarJuergen Gross <jgross@suse.com>
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
  24. 13 Sep, 2018 1 commit
  25. 12 Sep, 2018 1 commit
  26. 10 Sep, 2018 1 commit
  27. 07 Sep, 2018 1 commit
  28. 02 Sep, 2018 1 commit
  29. 30 Aug, 2018 1 commit
  30. 28 Aug, 2018 1 commit
  31. 27 Aug, 2018 1 commit