)]}'
{
  "log": [
    {
      "commit": "55db91fbaad9ea769d516e6867195808b4399894",
      "tree": "67453716f1604fd65a7b979fb55347a050582d02",
      "parents": [
        "9ef10340749e1da0c7fde609cedd5360f8484a0b",
        "6ab7d47bcbf0144a8cb81536c2cead4cde18acfe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 29 10:13:23 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 29 10:13:23 2018 -0800"
      },
      "message": "Merge branch \u0027for-4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu\n\nPull percpu update from Dennis Zhou:\n \"Michael Cree noted generic UP Alpha has been broken since v3.18. This\n  is a small fix for locking in UP percpu code that fixes the issue\"\n\n* \u0027for-4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu:\n  percpu: convert spin_lock_irq to spin_lock_irqsave.\n"
    },
    {
      "commit": "9ef10340749e1da0c7fde609cedd5360f8484a0b",
      "tree": "52f45833334a1c0bcc65569906020a58832c49c8",
      "parents": [
        "889bb74302e5aba85d987b4093344150984d7cda",
        "64711f9a47d4defa90417f5e8db8ed0060bc3275"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 29 09:40:40 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 29 09:40:40 2018 -0800"
      },
      "message": "Merge tag \u0027xtensa-20181228\u0027 of git://github.com/jcmvbkbc/linux-xtensa\n\nPull Xtensa updates from Max Filippov:\n\n - switch to generated syscall table\n\n - switch ptrace to regsets, use regsets for core dumps\n\n - complete tracehook implementation\n\n - add syscall tracepoints support\n\n - add jumplabels support\n\n - add memtest support\n\n - drop unused/duplicated code from entry.S, ptrace.c, coprocessor.S,\n   elf.h and syscall.h\n\n - clean up warnings caused by WSR/RSR macros\n\n - clean up DTC warnings about SPI controller node names in xtfpga.dtsi\n\n - simplify coprocessor.S\n\n - get rid of explicit \u0027l32r\u0027 instruction usage in assembly\n\n* tag \u0027xtensa-20181228\u0027 of git://github.com/jcmvbkbc/linux-xtensa: (25 commits)\n  xtensa: implement jump_label support\n  xtensa: implement syscall tracepoints\n  xtensa: implement tracehook functions and enable HAVE_ARCH_TRACEHOOK\n  xtensa: enable CORE_DUMP_USE_REGSET\n  xtensa: implement TIE regset\n  xtensa: implement task_user_regset_view\n  xtensa: call do_syscall_trace_{enter,leave} selectively\n  xtensa: use NO_SYSCALL instead of -1\n  xtensa: define syscall_get_arch()\n  Move EM_XTENSA to uapi/linux/elf-em.h\n  xtensa: support memtest\n  xtensa: don\u0027t use l32r opcode directly\n  xtensa: xtfpga.dtsi: fix dtc warnings about SPI\n  xtensa: don\u0027t clear cpenable unconditionally on release\n  xtensa: simplify coprocessor.S\n  xtensa: clean up WSR*/RSR*/get_sr/set_sr\n  xtensa: drop unused declarations from elf.h\n  xtensa: clean up syscall.h\n  xtensa: drop unused coprocessor helper functions\n  xtensa: drop custom PTRACE_{PEEK,POKE}{TEXT,DATA}\n  ...\n"
    },
    {
      "commit": "889bb74302e5aba85d987b4093344150984d7cda",
      "tree": "a81f49ee3b866e13a623e77090bbc153210d0091",
      "parents": [
        "903b77c631673eeec9e9114e9524171cdf9a2646",
        "e2f3f8b4a497d26bdcd55a53246ec2e613ae0fd4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 29 09:37:03 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 29 09:37:03 2018 -0800"
      },
      "message": "Merge tag \u0027nds32-for-linus-4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux\n\nPull nds32 updates from Greentime Hu:\n\n - Perf support\n\n - Power management support\n\n - FPU support\n\n - Hardware prefetcher support\n\n - Build error fixed\n\n - Performance enhancement\n\n* tag \u0027nds32-for-linus-4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux:\n  nds32: support hardware prefetcher\n  nds32: Fix the items of hwcap_str ordering issue.\n  math-emu/soft-fp.h: (_FP_ROUND_ZERO) cast 0 to void to fix warning\n  math-emu/op-2.h: Use statement expressions to prevent negative constant shift\n  nds32: support denormalized result through FP emulator\n  nds32: Support FP emulation\n  nds32: nds32 FPU port\n  nds32: Remove duplicated include from pm.c\n  nds32: Power management for nds32\n  nds32: Add document for NDS32 PMU.\n  nds32: Add perf call-graph support.\n  nds32: Perf porting\n  nds32: Fix bug in bitfield.h\n  nds32: Fix gcc 8.0 compiler option incompatible.\n  nds32: Fill all TLB entries with kernel image mapping\n  nds32: Remove the redundant assignment\n"
    },
    {
      "commit": "903b77c631673eeec9e9114e9524171cdf9a2646",
      "tree": "030064e334b9adc8328b9410bc2ffb2f52548a68",
      "parents": [
        "457fa3469a65a524be04412f5cd497fa3b11c9fd",
        "283ac6d5fb2a47f12bcef7806b78acf6ad89907e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 21:27:13 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 21:27:13 2018 -0800"
      },
      "message": "Merge tag \u0027linux-kselftest-4.21-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest\n\nPull Kselftest updates from Shuah Khan:\n\n - fixes and improvements to the framework, and individual tests\n\n - a new media test for IR encoders from Sean Young\n\n - a new watchdog test option to find time left on a timer\n\n* tag \u0027linux-kselftest-4.21-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:\n  selftests: Fix test errors related to lib.mk khdr target\n  fix dma-buf/udmabuf selftest\n  selftests: watchdog: fix spelling mistake \"experies\" -\u003e \"expires\"\n  selftests: watchdog: Add gettimeleft command line arg\n  selftests: do not macro-expand failed assertion expressions\n  selftests/ftrace: Fix invalid SPDX identifiers\n  selftests: gpio: Find libmount with pkg-config if available\n  selftests: firmware: add CONFIG_FW_LOADER_USER_HELPER_FALLBACK to config\n  selftests: firmware: remove use of non-standard diff -Z option\n  media: rc: self test for IR encoders and decoders\n"
    },
    {
      "commit": "457fa3469a65a524be04412f5cd497fa3b11c9fd",
      "tree": "e826786d7838668595dfac115ced53b32e5c97b9",
      "parents": [
        "b07039b79c9ea64c1eacda1e01d645082e4a0d5d",
        "fbc4904c287778ddb74bf6060ac9dec51992fc53"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:54:57 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:54:57 2018 -0800"
      },
      "message": "Merge tag \u0027char-misc-4.21-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc\n\nPull char/misc driver updates from Greg KH:\n \"Here is the big set of char and misc driver patches for 4.21-rc1.\n\n  Lots of different types of driver things in here, as this tree seems\n  to be the \"collection of various driver subsystems not big enough to\n  have their own git tree\" lately.\n\n  Anyway, some highlights of the changes in here:\n\n   - binderfs: is it a rule that all driver subsystems will eventually\n     grow to have their own filesystem? Binder now has one to handle the\n     use of it in containerized systems.\n\n     This was discussed at the Plumbers conference a few months ago and\n     knocked into mergable shape very fast by Christian Brauner. Who\n     also has signed up to be another binder maintainer, showing a\n     distinct lack of good judgement :)\n\n   - binder updates and fixes\n\n   - mei driver updates\n\n   - fpga driver updates and additions\n\n   - thunderbolt driver updates\n\n   - soundwire driver updates\n\n   - extcon driver updates\n\n   - nvmem driver updates\n\n   - hyper-v driver updates\n\n   - coresight driver updates\n\n   - pvpanic driver additions and reworking for more device support\n\n   - lp driver updates. Yes really, it\u0027s _finally_ moved to the proper\n     parallal port driver model, something I never thought I would see\n     happen. Good stuff.\n\n   - other tiny driver updates and fixes.\n\n  All of these have been in linux-next for a while with no reported\n  issues\"\n\n* tag \u0027char-misc-4.21-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (116 commits)\n  MAINTAINERS: add another Android binder maintainer\n  intel_th: msu: Fix an off-by-one in attribute store\n  stm class: Add a reference to the SyS-T document\n  stm class: Fix a module refcount leak in policy creation error path\n  char: lp: use new parport device model\n  char: lp: properly count the lp devices\n  char: lp: use first unused lp number while registering\n  char: lp: detach the device when parallel port is removed\n  char: lp: introduce list to save port number\n  bus: qcom: remove duplicated include from qcom-ebi2.c\n  VMCI: Use memdup_user() rather than duplicating its implementation\n  char/rtc: Use of_node_name_eq for node name comparisons\n  misc: mic: fix a DMA pool free failure\n  ptp: fix an IS_ERR() vs NULL check\n  genwqe: Fix size check\n  binder: implement binderfs\n  binder: fix use-after-free due to ksys_close() during fdget()\n  bus: fsl-mc: remove duplicated include files\n  bus: fsl-mc: explicitly define the fsl_mc_command endianness\n  misc: ti-st: make array read_ver_cmd static, shrinks object size\n  ...\n"
    },
    {
      "commit": "b07039b79c9ea64c1eacda1e01d645082e4a0d5d",
      "tree": "61532ba8425fdf897d6a67a74391a1c6f322a07b",
      "parents": [
        "02061181d3a9ccfe15ef6bc15fa56283acc47620",
        "16df1456aa858a86f398dbc7d27649eb6662b0cc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:44:29 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:44:29 2018 -0800"
      },
      "message": "Merge tag \u0027driver-core-4.21-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core\n\nPull driver core updates from Greg KH:\n \"Here is the \"big\" set of driver core patches for 4.21-rc1.\n\n  It\u0027s not really big, just a number of small changes for some reported\n  issues, some documentation updates to hopefully make it harder for\n  people to abuse the driver model, and some other minor cleanups.\n\n  All of these have been in linux-next for a while with no reported\n  issues\"\n\n* tag \u0027driver-core-4.21-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:\n  mm, memory_hotplug: update a comment in unregister_memory()\n  component: convert to DEFINE_SHOW_ATTRIBUTE\n  sysfs: Disable lockdep for driver bind/unbind files\n  driver core: Add missing dev-\u003ebus-\u003eneed_parent_lock checks\n  kobject: return error code if writing /sys/.../uevent fails\n  driver core: Move async_synchronize_full call\n  driver core: platform: Respect return code of platform_device_register_full()\n  kref/kobject: Improve documentation\n  drivers/base/memory.c: Use DEVICE_ATTR_RO and friends\n  driver core: Replace simple_strto{l,ul} by kstrtou{l,ul}\n  kernfs: Improve kernfs_notify() poll notification latency\n  kobject: Fix warnings in lib/kobject_uevent.c\n  kobject: drop unnecessary cast \"%llu\" for u64\n  driver core: fix comments for device_block_probing()\n  driver core: Replace simple_strtol by kstrtoint\n"
    },
    {
      "commit": "02061181d3a9ccfe15ef6bc15fa56283acc47620",
      "tree": "a1d2738c003f6358d9f98fa37c81233d7a10f172",
      "parents": [
        "117eda8f71ff545cfdec8fe8073adbd173a1ceff",
        "215852f4b8bbf7a8d6a534dfb367bb0f1a2d5011"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:39:58 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:39:58 2018 -0800"
      },
      "message": "Merge tag \u0027staging-4.21-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging\n\nPull staging/IIO driver updates from Greg KH:\n \"Here is the big staging and iio driver pull request for 4.21-rc1.\n\n  Lots and lots of tiny patches here, nothing major at all. Which is\n  good, tiny cleanups is nice to see. No new huge driver removal or\n  addition, this release cycle, although there are lots of good IIO\n  driver changes, addtions, and movement from staging into the \"real\"\n  part of the kernel, which is always great.\n\n  Full details are in the shortlog, and all of these have been in\n  linux-next for a while with no reported issues\"\n\n* tag \u0027staging-4.21-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (553 commits)\n  staging: mt7621-mmc: Correct spelling mistakes in comments\n  staging: wilc1000: fix missing read_write setting when reading data\n  mt7621-mmc: char * array declaration might be better as static const\n  mt7621-mmc: return statement in void function unnecessary\n  mt7621-mmc: Alignment should match open parenthesis\n  mt7621-mmc: Removed unnecessary blank lines\n  mt7621-mmc: Fix some coding style issues\n  staging: android: ashmem: doc: Fix spelling\n  staging: rtl8188eu: cleanup brace coding style issues\n  staging: rtl8188eu: add spaces around \u0027\u0026\u0027 in rtw_mlme_ext.c\n  staging: rtl8188eu: change return type of is_basicrate() to bool\n  staging: rtl8188eu: simplify null array initializations\n  staging: rtl8188eu: change order of declarations to improve readability\n  staging: rtl8188eu: make some arrays static in rtw_mlme_ext.c\n  staging: rtl8188eu: constify some arrays\n  staging: rtl8188eu: convert unsigned char arrays to u8\n  staging: rtl8188eu: remove redundant declaration in rtw_mlme_ext.c\n  staging: rtl8188eu: remove unused arrays WFD_OUI and WMM_INFO_OUI\n  staging: rtl8188eu: remove unnecessary parentheses in rtw_mlme_ext.c\n  staging: rtl8188eu: remove unnecessary comments in rtw_mlme_ext.c\n  ...\n"
    },
    {
      "commit": "117eda8f71ff545cfdec8fe8073adbd173a1ceff",
      "tree": "7a6fe1729d34581c563b5f7a883f049ee272f1e3",
      "parents": [
        "c0ea81b4d37837409d0dfd2036098a7babb312ed",
        "598134ffcab5bfb1d342458732394487063e1b9e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:33:54 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:33:54 2018 -0800"
      },
      "message": "Merge tag \u0027tty-4.21-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty\n\nPull tty/serial driver updates from Greg KH:\n \"Here is the large TTY/Serial driver set of patches for 4.21-rc1.\n\n  A number of small serial driver changes along with some good tty core\n  fixes for long-reported issues with locking. There is also a new\n  console font added to the tree, for high-res screens, so that should\n  be helpful for many.\n\n  The last patch in the series is a revert of an older one in the tree,\n  it came late but it resolves a reported issue that linux-next was\n  having for some people.\n\n  Full details are in the shortlog, and all of these, with the exception\n  of the revert, have been in linux-next for a while with no reported\n  issues\"\n\n* tag \u0027tty-4.21-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (85 commits)\n  Revert \"serial: 8250: Default SERIAL_OF_PLATFORM to SERIAL_8250\"\n  serial: sccnxp: Allow to use non-standard baud rates\n  serial: sccnxp: Adds a delay between sequential read/write cycles\n  tty: serial: qcom_geni_serial: Fix UART hang\n  tty: serial: qcom_geni_serial: Fix wrap around of TX buffer\n  serial: max310x: Fix tx_empty() callback\n  dt-bindings: serial: sh-sci: Document r8a774c0 bindings\n  dt-bindings: serial: sh-sci: Document r8a774a1 bindings\n  Fonts: New Terminus large console font\n  dt-bindings: serial: lpuart: add imx8qxp compatible string\n  serial: uartps: Fix interrupt mask issue to handle the RX interrupts properly\n  serial: uartps: Fix error path when alloc failed\n  serial: uartps: Check if the device is a console\n  serial: uartps: Add the device_init_wakeup\n  tty: serial: samsung: Increase maximum baudrate\n  tty: serial: samsung: Properly set flags in autoCTS mode\n  tty: Use of_node_name_{eq,prefix} for node name comparisons\n  tty/serial: do not free trasnmit buffer page under port lock\n  serial: 8250: Rate limit serial port rx interrupts during input overruns\n  dt-bindings: serial: 8250: Add rate limit for serial port input overruns\n  ...\n"
    },
    {
      "commit": "c0ea81b4d37837409d0dfd2036098a7babb312ed",
      "tree": "5d20f117ff03ec3d665487fb7fb045910d148ab1",
      "parents": [
        "4d6ad6fba6b7af06143c67964f4095c74c9ce87c",
        "4b2c01ad902ec02fa962b233decd2f14be3714ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:30:00 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:30:00 2018 -0800"
      },
      "message": "Merge tag \u0027usb-4.21-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb\n\nPull USB/PHY updates from Greg KH:\n \"Here is the big set of USB and PHY driver patches for 4.21-rc1.\n\n  All of the usual bits are in here:\n\n  - loads of USB gadget driver updates and additions\n\n  - new device ids\n\n  - phy driver updates\n\n  - xhci reworks and new features\n\n  - typec updates\n\n  Full details are in the shortlog.\n\n  All of these have been in linux-next for a long time with no reported\n  issues\"\n\n* tag \u0027usb-4.21-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (142 commits)\n  USB: serial: option: add Fibocom NL678 series\n  cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader.\n  usb: r8a66597: Fix a possible concurrency use-after-free bug in r8a66597_endpoint_disable()\n  usb: typec: tcpm: Extend the matching rules on PPS APDO selection\n  usb: typec: Improve Alt Mode documentation\n  usb: musb: dsps: fix runtime pm for peripheral mode\n  usb: musb: dsps: fix otg state machine\n  USB: serial: pl2303: add ids for Hewlett-Packard HP POS pole displays\n  usb: renesas_usbhs: add support for RZ/G2E\n  usb: ehci-omap: Fix deferred probe for phy handling\n  usb: roles: Add a description for the class to Kconfig\n  usb: renesas_usbhs: mark PM functions as __maybe_unused\n  usb: core: Remove unnecessary memset()\n  usb: host: isp1362-hcd: convert to DEFINE_SHOW_ATTRIBUTE\n  phy: qcom-qmp: Expose provided clocks to DT\n  dt-bindings: phy-qcom-qmp: Move #clock-cells to child\n  phy: qcom-qmp: Utilize fully-specified DT registers\n  dt-bindings: phy-qcom-qmp: Fix register underspecification\n  phy: ti: fix semicolon.cocci warnings\n  phy: dphy: Add configuration helpers\n  ...\n"
    },
    {
      "commit": "4d6ad6fba6b7af06143c67964f4095c74c9ce87c",
      "tree": "88d40a03134f60bc6691854b2b8d61ac54ff20f9",
      "parents": [
        "579a70035949b771a63a686db8becdd9b197d986",
        "3a658e09a215586918044d8f8b8358eb14fa3f7d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:28:25 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:28:25 2018 -0800"
      },
      "message": "Merge tag \u0027hsi-for-4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi\n\nPull HSI update from Sebastian Reichel:\n \"omap-ssi: use DEFINE_SHOW_ATTRIBUTE\"\n\n* tag \u0027hsi-for-4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:\n  HSI: omap_ssi: Change to use DEFINE_SHOW_ATTRIBUTE macro\n"
    },
    {
      "commit": "579a70035949b771a63a686db8becdd9b197d986",
      "tree": "2c53e112c7f0df7b89c9639da94942771cbb9a3a",
      "parents": [
        "030672aea826adf3dee9100ee8ac303b62c8fe7f",
        "9580913966488dc78d8d2893c7427d0a84124e74"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:22:45 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:22:45 2018 -0800"
      },
      "message": "Merge tag \u0027for-v4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply\n\nPull power supply and reset updates from Sebastian Reichel:\n\n - New core support:\n    - battery internal resistance\n    - battery OCV capacity lookup table\n    - support for custom sysfs attributes\n\n - Convert all drivers to use power-supply core support for custom sysfs\n   attributes\n\n - bq24190-charger: bq24196 support\n\n - axp20x-charger: AXP813 support\n\n - sc27xx-battery: new fuel gauge driver\n\n - gpio-poweroff: support for specific active and inactive delays\n\n - Misc fixes\n\n* tag \u0027for-v4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (53 commits)\n  power: supply: bq25890: fix BAT_COMP field definition\n  power: supply: gpio-charger: Do not use deprecated POWER_SUPPLY_TYPE_USB_*\n  power: supply: ds2781: switch to devm_power_supply_register\n  power: supply: ds2780: switch to devm_power_supply_register\n  power: supply: ds2781: fix race-condition in bin attribute registration\n  power: supply: ds2780: fix race-condition in bin attribute registration\n  power: supply: pcf50633: fix race-condition in sysfs registration\n  power: supply: charger-manager: fix race-condition in sysfs registration\n  power: supply: charger-manager: simplify generation of sysfs attribute group name\n  power: supply: bq24257: fix race-condition in sysfs registration\n  power: supply: bq24190_charger: fix race-condition in sysfs registration\n  power: supply: lp8788: fix race-condition in sysfs registration\n  power: supply: ds2781: fix race-condition in sysfs registration\n  power: supply: ds2780: fix race-condition in sysfs registration\n  power: supply: bq2415x: fix race-condition in sysfs registration\n  power: supply: core: add support for custom sysfs attributes\n  power: supply: sc27xx: Save last battery capacity\n  power: reset: at91-poweroff: move shdwc related data to one structure\n  power: supply: sc27xx: Add suspend/resume interfaces\n  power: supply: sc27xx: Add fuel gauge low voltage alarm\n  ...\n"
    },
    {
      "commit": "030672aea826adf3dee9100ee8ac303b62c8fe7f",
      "tree": "c9815fcd276e4c61b864790e81e5cbca16b80142",
      "parents": [
        "24dc83635ffe3c93d8122099a83ee228c9b7e4f7",
        "5801169a2ed20003f771acecf3ac00574cf10a38"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:08:34 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:08:34 2018 -0800"
      },
      "message": "Merge tag \u0027devicetree-for-4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux\n\nPull Devicetree updates from Rob Herring:\n \"The biggest highlight here is the start of using json-schema for DT\n  bindings. Being able to validate bindings has been discussed for years\n  with little progress.\n\n   - Initial support for DT bindings using json-schema language. This is\n     the start of converting DT bindings from free-form text to a\n     structured format.\n\n   - Reworking of initrd address initialization. This moves to using the\n     phys address instead of virt addr in the DT parsing code. This\n     rework was motivated by CONFIG_DEV_BLK_INITRD causing unnecessary\n     rebuilding of lots of files.\n\n   - Fix stale phandle entries in phandle cache\n\n   - DT overlay validation improvements. This exposed several memory\n     leak bugs which have been fixed.\n\n   - Use node name and device_type helper functions in DT code\n\n   - Last remaining conversions to using %pOFn printk specifier instead\n     of device_node.name directly\n\n   - Create new common RTC binding doc and move all trivial RTC devices\n     out of trivial-devices.txt.\n\n   - New bindings for Freescale MAG3110 magnetometer, Cadence Sierra\n     PHY, and Xen shared memory\n\n   - Update dtc to upstream version v1.4.7-57-gf267e674d145\"\n\n* tag \u0027devicetree-for-4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (68 commits)\n  of: __of_detach_node() - remove node from phandle cache\n  of: of_node_get()/of_node_put() nodes held in phandle cache\n  gpio-omap.txt: add reg and interrupts properties\n  dt-bindings: mrvl,intc: fix a trivial typo\n  dt-bindings: iio: magnetometer: add dt-bindings for freescale mag3110\n  dt-bindings: Convert trivial-devices.txt to json-schema\n  dt-bindings: arm: mrvl: amend Browstone compatible string\n  dt-bindings: arm: Convert Tegra board/soc bindings to json-schema\n  dt-bindings: arm: Convert ZTE board/soc bindings to json-schema\n  dt-bindings: arm: Add missing Xilinx boards\n  dt-bindings: arm: Convert Xilinx board/soc bindings to json-schema\n  dt-bindings: arm: Convert VIA board/soc bindings to json-schema\n  dt-bindings: arm: Convert ST STi board/soc bindings to json-schema\n  dt-bindings: arm: Convert SPEAr board/soc bindings to json-schema\n  dt-bindings: arm: Convert CSR SiRF board/soc bindings to json-schema\n  dt-bindings: arm: Convert QCom board/soc bindings to json-schema\n  dt-bindings: arm: Convert TI nspire board/soc bindings to json-schema\n  dt-bindings: arm: Convert TI davinci board/soc bindings to json-schema\n  dt-bindings: arm: Convert Calxeda board/soc bindings to json-schema\n  dt-bindings: arm: Convert Altera board/soc bindings to json-schema\n  ...\n"
    },
    {
      "commit": "24dc83635ffe3c93d8122099a83ee228c9b7e4f7",
      "tree": "4fafa40785d591a735c78ec3bbee7a05b944c1be",
      "parents": [
        "7e59fad9c9d1aeacdc96dfffd35f9e12ddc34dbf",
        "a7c23f8d154f7919c5fcfceea6e0897be2d5ab71"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:00:21 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 20:00:21 2018 -0800"
      },
      "message": "Merge tag \u0027gpio-v4.21-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio\n\nPull GPIO updates from Linus Walleij:\n \"This is the bulk of GPIO changes for the v4.21 kernel series.\n\n  Core changes:\n\n   - Some core changes are already in outside of this pull request as\n     they came through the regulator tree, most notably\n     devm_gpiod_unhinge() that removes devres refcount management from a\n     GPIO descriptor. This is needed in subsystems such as regulators\n     where the regulator core need to take over the reference counting\n     and lifecycle management for a GPIO descriptor.\n\n   - We dropped devm_gpiochip_remove() and devm_gpio_chip_match() as\n     nothing needs it. We can bring it back if need be.\n\n   - Add a global TODO so people see where we are going. This helps\n     setting the direction now that we are two GPIO maintainers.\n\n   - Handle the MMC CD/WP properties in the device tree core. (The bulk\n     of patches activating this code is already merged through the\n     MMC/SD tree.)\n\n   - Augment gpiochip_request_own_desc() to pass a flag so we as\n     gpiochips can request lines as active low or open drain etc even\n     from ourselves.\n\n  New drivers:\n\n   - New driver for Cadence GPIO blocks.\n\n   - New driver for Atmel SAMA5D2 PIOBU GPIO lines.\n\n  Driver improvements:\n\n   - A major refactoring of the PCA953x driver - this driver has been\n     around for ages, and is now modernized to reduce code duplication\n     that has stacked up and is using regmap to read write and cache\n     registers.\n\n   - Intel drivers are now maintained in a separate tree and start with\n     a round of cleanups and unifications\"\n\n* tag \u0027gpio-v4.21-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (99 commits)\n  gpio: sama5d2-piobu: Depend on OF_GPIO\n  gpio: Add Cadence GPIO driver\n  dt-bindings: gpio: Add bindings for Cadence GPIO\n  gpiolib-acpi: remove unused variable \u0027err\u0027, cleans up build warning\n  gpio: mxs: read pin level directly instead of using .get\n  gpio: aspeed: remove duplicated statement\n  gpio: add driver for SAMA5D2 PIOBU pins\n  dt-bindings: arm: atmel: describe SECUMOD usage as a GPIO controller\n  gpio/mmc/of: Respect polarity in the device tree\n  dt-bindings: gpio: rcar: Add r8a774c0 (RZ/G2E) support\n  memory: omap-gpmc: Get the header of the enum\n  ARM: omap1: Fix new user of gpiochip_request_own_desc()\n  gpio: pca953x: Add regmap dependency for PCA953x driver\n  gpio: raspberrypi-exp: decrease refcount on firmware dt node\n  gpiolib: Fix return value of gpio_to_desc() stub if !GPIOLIB\n  gpio: pca953x: Restore registers after suspend/resume cycle\n  gpio: pca953x: Zap single use of pca953x_read_single()\n  gpio: pca953x: Zap ad-hoc reg_output cache\n  gpio: pca953x: Zap ad-hoc reg_direction cache\n  gpio: pca953x: Perform basic regmap conversion\n  ...\n"
    },
    {
      "commit": "7e59fad9c9d1aeacdc96dfffd35f9e12ddc34dbf",
      "tree": "777a6c0f905f540990123cdb4dff261d63d582f5",
      "parents": [
        "8754040378e4ff70b3bb96b1dabac62da5dfb870",
        "221b35fedee1b38b9cee99320f0c60263d229e14"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 19:57:29 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 19:57:29 2018 -0800"
      },
      "message": "Merge tag \u0027drm-next-2018-12-27\u0027 of git://anongit.freedesktop.org/drm/drm\n\nPull more drm updates from Dave Airlie:\n \"Daniel collected a couple of pulls after I want on holidays, back for\n  a couple of days, so may as well send them out.\n\n  This has exynos and etnaviv work for 4.21.\n\n  exynos:\n   - plane alpha and blending configurability\n\n  etnaviv:\n   - mostly cleanups in prep for new features\"\n\n* tag \u0027drm-next-2018-12-27\u0027 of git://anongit.freedesktop.org/drm/drm:\n  drm/etnaviv: remove lastctx member from gpu struct\n  drm/etnaviv: replace header include with forward declaration\n  drm/etnaviv: remove unnecessary local irq disable\n  drm/exynos: fimd: Make pixel blend mode configurable\n  drm/exynos: fimd: Make plane alpha configurable\n  drm/etnaviv: Replace drm_dev_unref with drm_dev_put\n  drm/etnaviv: consolidate hardware fence handling in etnaviv_gpu\n  drm/etnaviv: kill active fence tracking\n"
    },
    {
      "commit": "8754040378e4ff70b3bb96b1dabac62da5dfb870",
      "tree": "43c3e3a2f7f1e306e76c7dddd99fde5aef69f84c",
      "parents": [
        "1984f65c2fbc0d2b557d6e89ece9b39267e215c6",
        "9aa3aa15f4c2f74f47afd6c5db4b420fadf3f315"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 19:48:25 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 19:48:25 2018 -0800"
      },
      "message": "Merge tag \u0027hwmon-for-v4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging\n\nPull hwmon updates from Guenter Roeck:\n \"The big change in this series is for the most part automatic:\n  Introducing SENSOR[_DEVICE]_ATTR_{RO,RW,WO} variants and conversion of\n  various drivers to use it. This is similar to DEVICE_ATTR variants.\n\n  Other than that, we have\n\n   - Some conversions of S_\u003cPERMS\u003e with octal values, also automated\n\n   - Added support for Hygon Dhyana CPUs to k10temp driver\n\n   - Added support for STLM75 to lm75 driver\n\n   - B57891S0103 to ntc_thermistor\n\n   - Added pm-runtime support to ina3221 driver\n\n   - Support for PowerPC On-Chip Controller (OCC)\n\n   - Various minor bug fices and improvements\"\n\n* tag \u0027hwmon-for-v4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (80 commits)\n  hwmon: (lm80) fix a missing check of bus read in lm80 probe\n  hwmon: (lm80) fix a missing check of the status of SMBus read\n  hwmon: (asus_atk0110) Fix debugfs_simple_attr.cocci warnings\n  hwmon: (ftsteutates) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  hwmon: (fschmd) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  hwmon: (emc6w201) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  hwmon: (emc2103) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  hwmon: (emc1403) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  hwmon: (ds620) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  hwmon: (ds1621) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  hwmon: (dell-smm-hwmon) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  hwmon: (da9055-hwmon) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  hwmon: (da9052-hwmon) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  hwmon: (coretemp) Replace S_\u003cPERMS\u003e with octal values\n  hwmon: (asus_atk0110) Replace S_\u003cPERMS\u003e with octal values\n  hwmon: (aspeed-pwm-tacho) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  hwmon: (applesmc) Replace S_\u003cPERMS\u003e with octal values\n  hwmon: (amc6821) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  hwmon: (adt7x10) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  hwmon: (adt7475) Use permission specific SENSOR[_DEVICE]_ATTR variants\n  ...\n"
    },
    {
      "commit": "1984f65c2fbc0d2b557d6e89ece9b39267e215c6",
      "tree": "cfaec61ef718812e0ba4c06cb8c3338af71fe1f7",
      "parents": [
        "f346b0becb1bc62e45495f9cdbae3eef35d0b635",
        "8ba35b3a0046d6573c98f00461d9bd1b86250d35"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 19:41:58 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 19:41:58 2018 -0800"
      },
      "message": "Merge tag \u0027vfio-v4.21-rc1\u0027 of git://github.com/awilliam/linux-vfio\n\nPull VFIO updates from Alex Williamson:\n\n - Replace global vfio-pci lock with per bus lock to allow concurrent\n   open and release (Alex Williamson)\n\n - Declare mdev function as static (Paolo Cretaro)\n\n - Convert char to u8 in mdev/mtty sample driver (Nathan Chancellor)\n\n* tag \u0027vfio-v4.21-rc1\u0027 of git://github.com/awilliam/linux-vfio:\n  vfio-mdev/samples: Use u8 instead of char for handle functions\n  vfio/mdev: add static modifier to add_mdev_supported_type\n  vfio/pci: Parallelize device open and release\n"
    },
    {
      "commit": "f346b0becb1bc62e45495f9cdbae3eef35d0b635",
      "tree": "ae79f3dfb8e031da51d38f0f095f89d7d23f3643",
      "parents": [
        "00d59fde8532b2d42e80909d2e58678755e04da9",
        "0f4991e8fd48987ae476a92cdee6bfec4aff31b8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 16:55:46 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 16:55:46 2018 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (patches from Andrew)\n\nMerge misc updates from Andrew Morton:\n\n - large KASAN update to use arm\u0027s \"software tag-based mode\"\n\n - a few misc things\n\n - sh updates\n\n - ocfs2 updates\n\n - just about all of MM\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (167 commits)\n  kernel/fork.c: mark \u0027stack_vm_area\u0027 with __maybe_unused\n  memcg, oom: notify on oom killer invocation from the charge path\n  mm, swap: fix swapoff with KSM pages\n  include/linux/gfp.h: fix typo\n  mm/hmm: fix memremap.h, move dev_page_fault_t callback to hmm\n  hugetlbfs: Use i_mmap_rwsem to fix page fault/truncate race\n  hugetlbfs: use i_mmap_rwsem for more pmd sharing synchronization\n  memory_hotplug: add missing newlines to debugging output\n  mm: remove __hugepage_set_anon_rmap()\n  include/linux/vmstat.h: remove unused page state adjustment macro\n  mm/page_alloc.c: allow error injection\n  mm: migrate: drop unused argument of migrate_page_move_mapping()\n  blkdev: avoid migration stalls for blkdev pages\n  mm: migrate: provide buffer_migrate_page_norefs()\n  mm: migrate: move migrate_page_lock_buffers()\n  mm: migrate: lock buffers before migrate_page_move_mapping()\n  mm: migration: factor out code to compute expected number of page references\n  mm, page_alloc: enable pcpu_drain with zone capability\n  kmemleak: add config to select auto scan\n  mm/page_alloc.c: don\u0027t call kasan_free_pages() at deferred mem init\n  ...\n"
    },
    {
      "commit": "00d59fde8532b2d42e80909d2e58678755e04da9",
      "tree": "5383ad260f0d0abc2fb624f8cd528e46a950317c",
      "parents": [
        "75f95da078b2891cd186f074ffc15a8e7c3f082d",
        "5215b2e952f3f94d74cac1a59494eb8ac647e216"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 16:52:18 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 16:52:18 2018 -0800"
      },
      "message": "Merge tag \u0027mmc-v4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc\n\nPull MMC updates from Ulf Hansson:\n \"This time, this pull request contains changes crossing subsystems and\n  archs/platforms, which is mainly because of a bigger modernization of\n  moving from legacy GPIO to GPIO descriptors for MMC (by Linus\n  Walleij).\n\n  Additionally, once again, I am funneling changes to\n  drivers/misc/cardreader/* and drivers/memstick/* through my MMC tree,\n  mostly due to that we lack a maintainer for these.\n\n  Summary:\n\n  MMC core:\n   - Cleanup BKOPS support\n   - Introduce MMC_CAP_SYNC_RUNTIME_PM\n   - slot-gpio: Delete legacy slot GPIO handling\n\n  MMC host:\n   - alcor: Add new mmc host driver for Alcor Micro PCI based cardreader\n   - bcm2835: Several improvements to better recover from errors\n   - jz4740: Rework and fixup pre|post_req support\n   - mediatek: Add support for SDIO IRQs\n   - meson-gx: Improve clock phase management\n   - meson-gx: Stop descriptor on errors\n   - mmci: Complete the sbc error path by sending a stop command\n   - renesas_sdhi/tmio: Fixup reset/resume operations\n   - renesas_sdhi: Add support for r8a774c0 and R7S9210\n   - renesas_sdhi: Whitelist R8A77990 SDHI\n   - renesas_sdhi: Fixup eMMC HS400 compatibility issues for H3 and M3-W\n   - rtsx_usb_sdmmc: Re-work card detection/removal support\n   - rtsx_usb_sdmmc: Re-work runtime PM support\n   - sdhci: Fix timeout loops for some variant drivers\n   - sdhci: Improve support for error handling due to failing commands\n   - sdhci-acpi/pci: Disable LED control for Intel BYT-based controllers\n   - sdhci_am654: Add new SDHCI variant driver to support TI\u0027s AM654 SOCs\n   - sdhci-of-esdhc: Add support for eMMC HS400 mode\n   - sdhci-omap: Fixup reset support\n   - sdhci-omap: Workaround errata regarding SDR104/HS200 tuning failures\n   - sdhci-msm: Fixup sporadic write transfers issues for SDR104/HS200\n   - sdhci-msm: Fixup dynamical clock gating issues\n   - various: Complete converting all hosts into using slot GPIO descriptors\n\n  Other:\n   - Move GPIO mmc platform data for mips/sh/arm to GPIO descriptors\n   - Add new Alcor Micro cardreader PCI driver\n   - Support runtime power management for memstick rtsx_usb_ms driver\n   - Use USB remote wakeups for card detection for rtsx_usb misc driver\"\n\n* tag \u0027mmc-v4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (99 commits)\n  mmc: mediatek: Add MMC_CAP_SDIO_IRQ support\n  mmc: renesas_sdhi_internal_dmac: Whitelist r8a774c0\n  dt-bindings: mmc: renesas_sdhi: Add r8a774c0 support\n  mmc: core: Cleanup BKOPS support\n  mmc: core: Drop redundant check in mmc_send_hpi_cmd()\n  mmc: sdhci-omap: Workaround errata regarding SDR104/HS200 tuning failures (i929)\n  dt-bindings: sdhci-omap: Add note for cpu_thermal\n  mmc: sdhci-acpi: Disable LED control for Intel BYT-based controllers\n  mmc: sdhci-pci: Disable LED control for Intel BYT-based controllers\n  mmc: sdhci: Add quirk to disable LED control\n  mmc: mmci: add variant property to set command stop bit\n  misc: alcor_pci: fix spelling mistake \"invailid\" -\u003e \"invalid\"\n  mmc: meson-gx: add signal resampling\n  mmc: meson-gx: align default phase on soc vendor tree\n  mmc: meson-gx: remove useless lock\n  mmc: meson-gx: make sure the descriptor is stopped on errors\n  mmc: sdhci_am654: Add Initial Support for AM654 SDHCI driver\n  dt-bindings: mmc: sdhci-of-arasan: Add deprecated message for AM65\n  dt-bindings: mmc: sdhci-am654: Document bindings for the host controllers on TI\u0027s AM654 SOCs\n  mmc: sdhci-msm: avoid unused function warning\n  ...\n"
    },
    {
      "commit": "75f95da078b2891cd186f074ffc15a8e7c3f082d",
      "tree": "2ba8da10d0d1e20565e893a777d4349fe9d483dd",
      "parents": [
        "4ed7bdc1eb4c82cf4bfdf6a94dd36fd695f6f387",
        "4b5f747e82b12b6d8ab815fc259827a615c7f2c3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 15:05:13 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 15:05:13 2018 -0800"
      },
      "message": "Merge tag \u0027libnvdimm-for-4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm\n\nPull libnvdimm updates from Dan Williams:\n \"The vast bulk of this update is the new support for the security\n  capabilities of some nvdimms.\n\n  The userspace tooling for this capability is still a work in progress,\n  but the changes survive the existing libnvdimm unit tests. The changes\n  also pass manual checkout on hardware and the new nfit_test emulation\n  of the security capability.\n\n  The touches of the security/keys/ files have received the necessary\n  acks from Mimi and David. Those changes were necessary to allow for a\n  new generic encrypted-key type, and allow the nvdimm sub-system to\n  lookup key material referenced by the libnvdimm-sysfs interface.\n\n  Summary:\n\n   - Add support for the security features of nvdimm devices that\n     implement a security model similar to ATA hard drive security. The\n     security model supports locking access to the media at\n     device-power-loss, to be unlocked with a passphrase, and\n     secure-erase (crypto-scramble).\n\n     Unlike the ATA security case where the kernel expects device\n     security to be managed in a pre-OS environment, the libnvdimm\n     security implementation allows key provisioning and key-operations\n     at OS runtime. Keys are managed with the kernel\u0027s encrypted-keys\n     facility to provide data-at-rest security for the libnvdimm key\n     material. The usage model mirrors fscrypt key management, but is\n     driven via libnvdimm sysfs.\n\n   - Miscellaneous updates for api usage and comment fixes\"\n\n* tag \u0027libnvdimm-for-4.21\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (21 commits)\n  libnvdimm/security: Quiet security operations\n  libnvdimm/security: Add documentation for nvdimm security support\n  tools/testing/nvdimm: add Intel DSM 1.8 support for nfit_test\n  tools/testing/nvdimm: Add overwrite support for nfit_test\n  tools/testing/nvdimm: Add test support for Intel nvdimm security DSMs\n  acpi/nfit, libnvdimm/security: add Intel DSM 1.8 master passphrase support\n  acpi/nfit, libnvdimm/security: Add security DSM overwrite support\n  acpi/nfit, libnvdimm: Add support for issue secure erase DSM to Intel nvdimm\n  acpi/nfit, libnvdimm: Add enable/update passphrase support for Intel nvdimms\n  acpi/nfit, libnvdimm: Add disable passphrase support to Intel nvdimm.\n  acpi/nfit, libnvdimm: Add unlock of nvdimm support for Intel DIMMs\n  acpi/nfit, libnvdimm: Add freeze security support to Intel nvdimm\n  acpi/nfit, libnvdimm: Introduce nvdimm_security_ops\n  keys-encrypted: add nvdimm key format type to encrypted keys\n  keys: Export lookup_user_key to external users\n  acpi/nfit, libnvdimm: Store dimm id as a member to struct nvdimm\n  libnvdimm, namespace: Replace kmemdup() with kstrndup()\n  libnvdimm, label: Switch to bitmap_zalloc()\n  ACPI/nfit: Adjust annotation for why return 0 if fail to find NFIT at start\n  libnvdimm, bus: Check id immediately following ida_simple_get\n  ...\n"
    },
    {
      "commit": "4ed7bdc1eb4c82cf4bfdf6a94dd36fd695f6f387",
      "tree": "c3a74a9825876fd3ffd78eb04b4035c29d6028f9",
      "parents": [
        "5d24ae67a961c51beb255a28c9c417d9710247c2",
        "c6d6e9b0f6b4201c77f2cea3964dd122697e3543"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 15:02:26 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 15:02:26 2018 -0800"
      },
      "message": "Merge tag \u0027for-4.21/dm-changes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm\n\nPull device mapper updates from Mike Snitzer:\n\n - Eliminate a couple indirect calls from bio-based DM core.\n\n - Fix DM to allow reads that exceed readahead limits by setting\n   io_pages in the backing_dev_info.\n\n - A couple code cleanups in request-based DM.\n\n - Fix various DM targets to check for device sector overflow if\n   CONFIG_LBDAF is not set.\n\n - Use u64 instead of sector_t to store iv_offset in DM crypt; sector_t\n   isn\u0027t large enough on 32bit when CONFIG_LBDAF is not set.\n\n - Performance fixes to DM\u0027s kcopyd and the snapshot target focused on\n   limiting memory use and workqueue stalls.\n\n - Fix typos in the integrity and writecache targets.\n\n - Log which algorithm is used for dm-crypt\u0027s encryption and\n   dm-integrity\u0027s hashing.\n\n - Fix false -EBUSY errors in DM raid target\u0027s handling of check/repair\n   messages.\n\n - Fix DM flakey target\u0027s corrupt_bio_byte feature to reliably corrupt\n   the Nth byte in a bio\u0027s payload.\n\n* tag \u0027for-4.21/dm-changes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:\n  dm: do not allow readahead to limit IO size\n  dm raid: fix false -EBUSY when handling check/repair message\n  dm rq: cleanup leftover code from recently removed q-\u003emq_ops branching\n  dm verity: log the hash algorithm implementation\n  dm crypt: log the encryption algorithm implementation\n  dm integrity: fix spelling mistake in workqueue name\n  dm flakey: Properly corrupt multi-page bios.\n  dm: Check for device sector overflow if CONFIG_LBDAF is not set\n  dm crypt: use u64 instead of sector_t to store iv_offset\n  dm kcopyd: Fix bug causing workqueue stalls\n  dm snapshot: Fix excessive memory usage and workqueue stalls\n  dm bufio: update comment in dm-bufio.c\n  dm writecache: fix typo in error msg for creating writecache_flush_thread\n  dm: remove indirect calls from __send_changing_extent_only()\n  dm mpath: only flush workqueue when needed\n  dm rq: remove unused arguments from rq_completed()\n  dm: avoid indirect call in __dm_make_request\n"
    },
    {
      "commit": "5d24ae67a961c51beb255a28c9c417d9710247c2",
      "tree": "c23c71b2f17f4502554c80b84be476e4c08f7160",
      "parents": [
        "938edb8a31b976c9a92eb0cd4ff481e93f76c1f1",
        "f617e5ffe04fd46010b618c9eeadaa04588704c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 14:57:10 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 14:57:10 2018 -0800"
      },
      "message": "Merge tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma\n\nPull rdma updates from Jason Gunthorpe:\n \"This has been a fairly typical cycle, with the usual sorts of driver\n  updates. Several series continue to come through which improve and\n  modernize various parts of the core code, and we finally are starting\n  to get the uAPI command interface cleaned up.\n\n   - Various driver fixes for bnxt_re, cxgb3/4, hfi1, hns, i40iw, mlx4,\n     mlx5, qib, rxe, usnic\n\n   - Rework the entire syscall flow for uverbs to be able to run over\n     ioctl(). Finally getting past the historic bad choice to use\n     write() for command execution\n\n   - More functional coverage with the mlx5 \u0027devx\u0027 user API\n\n   - Start of the HFI1 series for \u0027TID RDMA\u0027\n\n   - SRQ support in the hns driver\n\n   - Support for new IBTA defined 2x lane widths\n\n   - A big series to consolidate all the driver function pointers into a\n     big struct and have drivers provide a \u0027static const\u0027 version of the\n     struct instead of open coding initialization\n\n   - New \u0027advise_mr\u0027 uAPI to control device caching/loading of page\n     tables\n\n   - Support for inline data in SRPT\n\n   - Modernize how umad uses the driver core and creates cdev\u0027s and\n     sysfs files\n\n   - First steps toward removing \u0027uobject\u0027 from the view of the drivers\"\n\n* tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (193 commits)\n  RDMA/srpt: Use kmem_cache_free() instead of kfree()\n  RDMA/mlx5: Signedness bug in UVERBS_HANDLER()\n  IB/uverbs: Signedness bug in UVERBS_HANDLER()\n  IB/mlx5: Allocate the per-port Q counter shared when DEVX is supported\n  IB/umad: Start using dev_groups of class\n  IB/umad: Use class_groups and let core create class file\n  IB/umad: Refactor code to use cdev_device_add()\n  IB/umad: Avoid destroying device while it is accessed\n  IB/umad: Simplify and avoid dynamic allocation of class\n  IB/mlx5: Fix wrong error unwind\n  IB/mlx4: Remove set but not used variable \u0027pd\u0027\n  RDMA/iwcm: Don\u0027t copy past the end of dev_name() string\n  IB/mlx5: Fix long EEH recover time with NVMe offloads\n  IB/mlx5: Simplify netdev unbinding\n  IB/core: Move query port to ioctl\n  RDMA/nldev: Expose port_cap_flags2\n  IB/core: uverbs copy to struct or zero helper\n  IB/rxe: Reuse code which sets port state\n  IB/rxe: Make counters thread safe\n  IB/mlx5: Use the correct commands for UMEM and UCTX allocation\n  ...\n"
    },
    {
      "commit": "938edb8a31b976c9a92eb0cd4ff481e93f76c1f1",
      "tree": "0854d5f6859d51032f1d853eaa8ab0e8647fb0cb",
      "parents": [
        "af7ddd8a627c62a835524b3f5b471edbbbcce025",
        "da7903092b880b25971ca9103cb0b934a44ace2b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 14:48:06 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 14:48:06 2018 -0800"
      },
      "message": "Merge tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi\n\nPull SCSI updates from James Bottomley:\n \"This is mostly update of the usual drivers: smarpqi, lpfc, qedi,\n  megaraid_sas, libsas, zfcp, mpt3sas, hisi_sas.\n\n  Additionally, we have a pile of annotation, unused variable and minor\n  updates.\n\n  The big API change is the updates for Christoph\u0027s DMA rework which\n  include removing the DISABLE_CLUSTERING flag.\n\n  And finally there are a couple of target tree updates\"\n\n* tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (259 commits)\n  scsi: isci: request: mark expected switch fall-through\n  scsi: isci: remote_node_context: mark expected switch fall-throughs\n  scsi: isci: remote_device: Mark expected switch fall-throughs\n  scsi: isci: phy: Mark expected switch fall-through\n  scsi: iscsi: Capture iscsi debug messages using tracepoints\n  scsi: myrb: Mark expected switch fall-throughs\n  scsi: megaraid: fix out-of-bound array accesses\n  scsi: mpt3sas: mpt3sas_scsih: Mark expected switch fall-through\n  scsi: fcoe: remove set but not used variable \u0027port\u0027\n  scsi: smartpqi: call pqi_free_interrupts() in pqi_shutdown()\n  scsi: smartpqi: fix build warnings\n  scsi: smartpqi: update driver version\n  scsi: smartpqi: add ofa support\n  scsi: smartpqi: increase fw status register read timeout\n  scsi: smartpqi: bump driver version\n  scsi: smartpqi: add smp_utils support\n  scsi: smartpqi: correct lun reset issues\n  scsi: smartpqi: correct volume status\n  scsi: smartpqi: do not offline disks for transient did no connect conditions\n  scsi: smartpqi: allow for larger raid maps\n  ...\n"
    },
    {
      "commit": "af7ddd8a627c62a835524b3f5b471edbbbcce025",
      "tree": "af9777ddef6d394c7cc01fca599328b584ca2bc1",
      "parents": [
        "fe2b0cdabcd9e6aeca66a104bc03576946e5fee2",
        "8b1cce9f5832a8eda17d37a3c49fb7dd2d650f46"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 14:12:21 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 14:12:21 2018 -0800"
      },
      "message": "Merge tag \u0027dma-mapping-4.21\u0027 of git://git.infradead.org/users/hch/dma-mapping\n\nPull DMA mapping updates from Christoph Hellwig:\n \"A huge update this time, but a lot of that is just consolidating or\n  removing code:\n\n   - provide a common DMA_MAPPING_ERROR definition and avoid indirect\n     calls for dma_map_* error checking\n\n   - use direct calls for the DMA direct mapping case, avoiding huge\n     retpoline overhead for high performance workloads\n\n   - merge the swiotlb dma_map_ops into dma-direct\n\n   - provide a generic remapping DMA consistent allocator for\n     architectures that have devices that perform DMA that is not cache\n     coherent. Based on the existing arm64 implementation and also used\n     for csky now.\n\n   - improve the dma-debug infrastructure, including dynamic allocation\n     of entries (Robin Murphy)\n\n   - default to providing chaining scatterlist everywhere, with opt-outs\n     for the few architectures (alpha, parisc, most arm32 variants) that\n     can\u0027t cope with it\n\n   - misc sparc32 dma-related cleanups\n\n   - remove the dma_mark_clean arch hook used by swiotlb on ia64 and\n     replace it with the generic noncoherent infrastructure\n\n   - fix the return type of dma_set_max_seg_size (Niklas Söderlund)\n\n   - move the dummy dma ops for not DMA capable devices from arm64 to\n     common code (Robin Murphy)\n\n   - ensure dma_alloc_coherent returns zeroed memory to avoid kernel\n     data leaks through userspace. We already did this for most common\n     architectures, but this ensures we do it everywhere.\n     dma_zalloc_coherent has been deprecated and can hopefully be\n     removed after -rc1 with a coccinelle script\"\n\n* tag \u0027dma-mapping-4.21\u0027 of git://git.infradead.org/users/hch/dma-mapping: (73 commits)\n  dma-mapping: fix inverted logic in dma_supported\n  dma-mapping: deprecate dma_zalloc_coherent\n  dma-mapping: zero memory returned from dma_alloc_*\n  sparc/iommu: fix -\u003emap_sg return value\n  sparc/io-unit: fix -\u003emap_sg return value\n  arm64: default to the direct mapping in get_arch_dma_ops\n  PCI: Remove unused attr variable in pci_dma_configure\n  ia64: only select ARCH_HAS_DMA_COHERENT_TO_PFN if swiotlb is enabled\n  dma-mapping: bypass indirect calls for dma-direct\n  vmd: use the proper dma_* APIs instead of direct methods calls\n  dma-direct: merge swiotlb_dma_ops into the dma_direct code\n  dma-direct: use dma_direct_map_page to implement dma_direct_map_sg\n  dma-direct: improve addressability error reporting\n  swiotlb: remove dma_mark_clean\n  swiotlb: remove SWIOTLB_MAP_ERROR\n  ACPI / scan: Refactor _CCA enforcement\n  dma-mapping: factor out dummy DMA ops\n  dma-mapping: always build the direct mapping code\n  dma-mapping: move dma_cache_sync out of line\n  dma-mapping: move various slow path functions out of line\n  ...\n"
    },
    {
      "commit": "fe2b0cdabcd9e6aeca66a104bc03576946e5fee2",
      "tree": "3abffb169919155a4039188f7262c9fd9c64457d",
      "parents": [
        "956eb6cb36765e3a79a744e6c9364dab1548e460",
        "9f83cfdb1ace3ef268ecc6fda50058d2ec37d603"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 14:06:43 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 14:06:43 2018 -0800"
      },
      "message": "Merge tag \u0027for-4.21/libata-20181221\u0027 of git://git.kernel.dk/linux-block\n\nPull libata updates from Jens Axboe:\n \"Here are the libata changes for this merge window. Nothing major in\n  here. This contains:\n\n   - GPIO descriptor conversions (Linus Walleij)\n\n   - rcar deferred probing fix (Sergei Shtylyov)\"\n\n* tag \u0027for-4.21/libata-20181221\u0027 of git://git.kernel.dk/linux-block:\n  sata_rcar: fix deferred probing\n  ata: palmld: Introduce state container\n  ata: palmld: Convert to GPIO descriptors\n  ata: rb532_cf: Convert to use GPIO descriptors\n  ata: sata_highbank: Convert to use GPIO descriptors\n  ata: pxa: Drop \u003clinux/gpio.h\u003e include\n"
    },
    {
      "commit": "956eb6cb36765e3a79a744e6c9364dab1548e460",
      "tree": "efe650d4b296672baf5750fd6a4ef1f2db24bb90",
      "parents": [
        "0e9da3fbf7d81f0f913b491c8de1ba7883d4f217",
        "875736bb3f3ded168469f6a14df7a938416a99d5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 13:57:59 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 13:57:59 2018 -0800"
      },
      "message": "Merge tag \u0027for-4.21/aio-20181221\u0027 of git://git.kernel.dk/linux-block\n\nPull aio updates from Jens Axboe:\n \"Flushing out pre-patches for the buffered/polled aio series. Some\n  fixes in here, but also optimizations\"\n\n* tag \u0027for-4.21/aio-20181221\u0027 of git://git.kernel.dk/linux-block:\n  aio: abstract out io_event filler helper\n  aio: split out iocb copy from io_submit_one()\n  aio: use iocb_put() instead of open coding it\n  aio: only use blk plugs for \u003e 2 depth submissions\n  aio: don\u0027t zero entire aio_kiocb aio_get_req()\n  aio: separate out ring reservation from req allocation\n  aio: use assigned completion handler\n"
    },
    {
      "commit": "0e9da3fbf7d81f0f913b491c8de1ba7883d4f217",
      "tree": "2b3d25e3be60bf4ee40b4690c7bb9d6fa499ae69",
      "parents": [
        "b12a9124eeb71d766a3e3eb594ebbb3fefc66902",
        "00203ba40d40d7f33857416adfb18adaf0e40123"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 13:19:59 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 13:19:59 2018 -0800"
      },
      "message": "Merge tag \u0027for-4.21/block-20181221\u0027 of git://git.kernel.dk/linux-block\n\nPull block updates from Jens Axboe:\n \"This is the main pull request for block/storage for 4.21.\n\n  Larger than usual, it was a busy round with lots of goodies queued up.\n  Most notable is the removal of the old IO stack, which has been a long\n  time coming. No new features for a while, everything coming in this\n  week has all been fixes for things that were previously merged.\n\n  This contains:\n\n   - Use atomic counters instead of semaphores for mtip32xx (Arnd)\n\n   - Cleanup of the mtip32xx request setup (Christoph)\n\n   - Fix for circular locking dependency in loop (Jan, Tetsuo)\n\n   - bcache (Coly, Guoju, Shenghui)\n      * Optimizations for writeback caching\n      * Various fixes and improvements\n\n   - nvme (Chaitanya, Christoph, Sagi, Jay, me, Keith)\n      * host and target support for NVMe over TCP\n      * Error log page support\n      * Support for separate read/write/poll queues\n      * Much improved polling\n      * discard OOM fallback\n      * Tracepoint improvements\n\n   - lightnvm (Hans, Hua, Igor, Matias, Javier)\n      * Igor added packed metadata to pblk. Now drives without metadata\n        per LBA can be used as well.\n      * Fix from Geert on uninitialized value on chunk metadata reads.\n      * Fixes from Hans and Javier to pblk recovery and write path.\n      * Fix from Hua Su to fix a race condition in the pblk recovery\n        code.\n      * Scan optimization added to pblk recovery from Zhoujie.\n      * Small geometry cleanup from me.\n\n   - Conversion of the last few drivers that used the legacy path to\n     blk-mq (me)\n\n   - Removal of legacy IO path in SCSI (me, Christoph)\n\n   - Removal of legacy IO stack and schedulers (me)\n\n   - Support for much better polling, now without interrupts at all.\n     blk-mq adds support for multiple queue maps, which enables us to\n     have a map per type. This in turn enables nvme to have separate\n     completion queues for polling, which can then be interrupt-less.\n     Also means we\u0027re ready for async polled IO, which is hopefully\n     coming in the next release.\n\n   - Killing of (now) unused block exports (Christoph)\n\n   - Unification of the blk-rq-qos and blk-wbt wait handling (Josef)\n\n   - Support for zoned testing with null_blk (Masato)\n\n   - sx8 conversion to per-host tag sets (Christoph)\n\n   - IO priority improvements (Damien)\n\n   - mq-deadline zoned fix (Damien)\n\n   - Ref count blkcg series (Dennis)\n\n   - Lots of blk-mq improvements and speedups (me)\n\n   - sbitmap scalability improvements (me)\n\n   - Make core inflight IO accounting per-cpu (Mikulas)\n\n   - Export timeout setting in sysfs (Weiping)\n\n   - Cleanup the direct issue path (Jianchao)\n\n   - Export blk-wbt internals in block debugfs for easier debugging\n     (Ming)\n\n   - Lots of other fixes and improvements\"\n\n* tag \u0027for-4.21/block-20181221\u0027 of git://git.kernel.dk/linux-block: (364 commits)\n  kyber: use sbitmap add_wait_queue/list_del wait helpers\n  sbitmap: add helpers for add/del wait queue handling\n  block: save irq state in blkg_lookup_create()\n  dm: don\u0027t reuse bio for flushes\n  nvme-pci: trace SQ status on completions\n  nvme-rdma: implement polling queue map\n  nvme-fabrics: allow user to pass in nr_poll_queues\n  nvme-fabrics: allow nvmf_connect_io_queue to poll\n  nvme-core: optionally poll sync commands\n  block: make request_to_qc_t public\n  nvme-tcp: fix spelling mistake \"attepmpt\" -\u003e \"attempt\"\n  nvme-tcp: fix endianess annotations\n  nvmet-tcp: fix endianess annotations\n  nvme-pci: refactor nvme_poll_irqdisable to make sparse happy\n  nvme-pci: only set nr_maps to 2 if poll queues are supported\n  nvmet: use a macro for default error location\n  nvmet: fix comparison of a u16 with -1\n  blk-mq: enable IO poll if .nr_queues of type poll \u003e 0\n  blk-mq: change blk_mq_queue_busy() to blk_mq_queue_inflight()\n  blk-mq: skip zero-queue maps in blk_mq_map_swqueue\n  ...\n"
    },
    {
      "commit": "b12a9124eeb71d766a3e3eb594ebbb3fefc66902",
      "tree": "1803ac4abd3be73241e58b9da0c4fb71295137b4",
      "parents": [
        "1a80dade010c7a7f4885a4c4c2a7ac22cc7b34df",
        "e4b92b108c6cd6b311e4b6e85d6a87a34599a6e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:45:04 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:45:04 2018 -0800"
      },
      "message": "Merge tag \u0027y2038-for-4.21\u0027 of ssh://gitolite.kernel.org:/pub/scm/linux/kernel/git/arnd/playground\n\nPull y2038 updates from Arnd Bergmann:\n \"More syscalls and cleanups\n\n  This concludes the main part of the system call rework for 64-bit\n  time_t, which has spread over most of year 2018, the last six system\n  calls being\n\n    - ppoll\n    - pselect6\n    - io_pgetevents\n    - recvmmsg\n    - futex\n    - rt_sigtimedwait\n\n  As before, nothing changes for 64-bit architectures, while 32-bit\n  architectures gain another entry point that differs only in the layout\n  of the timespec structure. Hopefully in the next release we can wire\n  up all 22 of those system calls on all 32-bit architectures, which\n  gives us a baseline version for glibc to start using them.\n\n  This does not include the clock_adjtime, getrusage/waitid, and\n  getitimer/setitimer system calls. I still plan to have new versions of\n  those as well, but they are not required for correct operation of the\n  C library since they can be emulated using the old 32-bit time_t based\n  system calls.\n\n  Aside from the system calls, there are also a few cleanups here,\n  removing old kernel internal interfaces that have become unused after\n  all references got removed. The arch/sh cleanups are part of this,\n  there were posted several times over the past year without a reaction\n  from the maintainers, while the corresponding changes made it into all\n  other architectures\"\n\n* tag \u0027y2038-for-4.21\u0027 of ssh://gitolite.kernel.org:/pub/scm/linux/kernel/git/arnd/playground:\n  timekeeping: remove obsolete time accessors\n  vfs: replace current_kernel_time64 with ktime equivalent\n  timekeeping: remove timespec_add/timespec_del\n  timekeeping: remove unused {read,update}_persistent_clock\n  sh: remove board_time_init() callback\n  sh: remove unused rtc_sh_get/set_time infrastructure\n  sh: sh03: rtc: push down rtc class ops into driver\n  sh: dreamcast: rtc: push down rtc class ops into driver\n  y2038: signal: Add compat_sys_rt_sigtimedwait_time64\n  y2038: signal: Add sys_rt_sigtimedwait_time32\n  y2038: socket: Add compat_sys_recvmmsg_time64\n  y2038: futex: Add support for __kernel_timespec\n  y2038: futex: Move compat implementation into futex.c\n  io_pgetevents: use __kernel_timespec\n  pselect6: use __kernel_timespec\n  ppoll: use __kernel_timespec\n  signal: Add restore_user_sigmask()\n  signal: Add set_user_sigmask()\n"
    },
    {
      "commit": "1a80dade010c7a7f4885a4c4c2a7ac22cc7b34df",
      "tree": "95cc3a11b8292c2abeb81fecec48739e2390d087",
      "parents": [
        "00c569b567c7f1f0da6162868fd02a9f29411805"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "willy@infradead.org",
        "time": "Fri Dec 28 07:22:26 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:42:30 2018 -0800"
      },
      "message": "Fix failure path in alloc_pid()\n\nThe failure path removes the allocated PIDs from the wrong namespace.\nThis could lead to us inadvertently reusing PIDs in the leaf namespace\nand leaking PIDs in parent namespaces.\n\nFixes: 95846ecf9dac (\"pid: replace pid bitmap implementation with IDR API\")\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Matthew Wilcox \u003cwilly@infradead.org\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f4991e8fd48987ae476a92cdee6bfec4aff31b8",
      "tree": "ac2c4d96bde3b7782b89f99b3561c84b7b7d857a",
      "parents": [
        "7056d3a37d2c6aaaab10c13e8e69adc67ec1fc65"
      ],
      "author": {
        "name": "YueHaibing",
        "email": "yuehaibing@huawei.com",
        "time": "Fri Dec 28 00:40:00 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:52 2018 -0800"
      },
      "message": "kernel/fork.c: mark \u0027stack_vm_area\u0027 with __maybe_unused\n\nFixes gcc \u0027-Wunused-but-set-variable\u0027 warning when CONFIG_VMAP_STACK is\nnot set:\n\nkernel/fork.c: In function \u0027dup_task_struct\u0027:\nkernel/fork.c:843:20: warning:\n variable \u0027stack_vm_area\u0027 set but not used [-Wunused-but-set-variable]\n\nLink: http://lkml.kernel.org/r/1545965190-2381-1-git-send-email-yuehaibing@huawei.com\nSigned-off-by: YueHaibing \u003cyuehaibing@huawei.com\u003e\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7056d3a37d2c6aaaab10c13e8e69adc67ec1fc65",
      "tree": "74aeadd24b7ee5f20e44ffbd83c790021613c33e",
      "parents": [
        "7af7a8e19f0c5425ff639b0f0d2d244c2a647724"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Fri Dec 28 00:39:57 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:52 2018 -0800"
      },
      "message": "memcg, oom: notify on oom killer invocation from the charge path\n\nBurt Holzman has noticed that memcg v1 doesn\u0027t notify about OOM events via\neventfd anymore.  The reason is that 29ef680ae7c2 (\"memcg, oom: move\nout_of_memory back to the charge path\") has moved the oom handling back to\nthe charge path.  While doing so the notification was left behind in\nmem_cgroup_oom_synchronize.\n\nFix the issue by replicating the oom hierarchy locking and the\nnotification.\n\nLink: http://lkml.kernel.org/r/20181224091107.18354-1-mhocko@kernel.org\nFixes: 29ef680ae7c2 (\"memcg, oom: move out_of_memory back to the charge path\")\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\nReported-by: Burt Holzman \u003cburt@fnal.gov\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Vladimir Davydov \u003cvdavydov.dev@gmail.com\nCc: \u003cstable@vger.kernel.org\u003e\t[4.19+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7af7a8e19f0c5425ff639b0f0d2d244c2a647724",
      "tree": "4bee28e2975f7b8413853860f84523c357d183af",
      "parents": [
        "70c6066e19c15749b579dde7d5722c7d7fb05d57"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Fri Dec 28 00:39:53 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:52 2018 -0800"
      },
      "message": "mm, swap: fix swapoff with KSM pages\n\nKSM pages may be mapped to the multiple VMAs that cannot be reached from\none anon_vma.  So during swapin, a new copy of the page need to be\ngenerated if a different anon_vma is needed, please refer to comments of\nksm_might_need_to_copy() for details.\n\nDuring swapoff, unuse_vma() uses anon_vma (if available) to locate VMA and\nvirtual address mapped to the page, so not all mappings to a swapped out\nKSM page could be found.  So in try_to_unuse(), even if the swap count of\na swap entry isn\u0027t zero, the page needs to be deleted from swap cache, so\nthat, in the next round a new page could be allocated and swapin for the\nother mappings of the swapped out KSM page.\n\nBut this contradicts with the THP swap support.  Where the THP could be\ndeleted from swap cache only after the swap count of every swap entry in\nthe huge swap cluster backing the THP has reach 0.  So try_to_unuse() is\nchanged in commit e07098294adf (\"mm, THP, swap: support to reclaim swap\nspace for THP swapped out\") to check that before delete a page from swap\ncache, but this has broken KSM swapoff too.\n\nFortunately, KSM is for the normal pages only, so the original behavior\nfor KSM pages could be restored easily via checking PageTransCompound().\nThat is how this patch works.\n\nThe bug is introduced by e07098294adf (\"mm, THP, swap: support to reclaim\nswap space for THP swapped out\"), which is merged by v4.14-rc1.  So I\nthink we should backport the fix to from 4.14 on.  But Hugh thinks it may\nbe rare for the KSM pages being in the swap device when swapoff, so nobody\nreports the bug so far.\n\nLink: http://lkml.kernel.org/r/20181226051522.28442-1-ying.huang@intel.com\nFixes: e07098294adf (\"mm, THP, swap: support to reclaim swap space for THP swapped out\")\nSigned-off-by: \"Huang, Ying\" \u003cying.huang@intel.com\u003e\nReported-by: Hugh Dickins \u003chughd@google.com\u003e\nTested-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Shaohua Li \u003cshli@kernel.org\u003e\nCc: Daniel Jordan \u003cdaniel.m.jordan@oracle.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70c6066e19c15749b579dde7d5722c7d7fb05d57",
      "tree": "390c881e811df6f1fdd892644a239995d1dee5b3",
      "parents": [
        "063a7d1d3623db31ca5d2309cab6030ebf93b72f"
      ],
      "author": {
        "name": "Kyle Spiers",
        "email": "ksspiers@google.com",
        "time": "Fri Dec 28 00:39:49 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:52 2018 -0800"
      },
      "message": "include/linux/gfp.h: fix typo\n\nFix misspelled \"satisfied\"\n\nLink: http://lkml.kernel.org/r/20181227232354.64562-1-ksspiers@google.com\nSigned-off-by: Kyle Spiers \u003cksspiers@google.com\u003e\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "063a7d1d3623db31ca5d2309cab6030ebf93b72f",
      "tree": "db21d6e0f9a623faa40bc2d9ac2dc1f43f5ba9a5",
      "parents": [
        "c86aa7bbfd5568ba8a82d3635d8f7b8a8e06fe54"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Dec 28 00:39:46 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:52 2018 -0800"
      },
      "message": "mm/hmm: fix memremap.h, move dev_page_fault_t callback to hmm\n\nThe kbuild robot reported the following on a development branch that used\nmemremap.h in a new path:\n\n   In file included from arch/m68k/include/asm/pgtable_mm.h:148:0,\n                     from arch/m68k/include/asm/pgtable.h:5,\n                     from include/linux/memremap.h:7,\n                     from drivers//dax/bus.c:3:\n    arch/m68k/include/asm/motorola_pgtable.h: In function \u0027pgd_offset\u0027:\n \u003e\u003e arch/m68k/include/asm/motorola_pgtable.h:199:11: error: dereferencing pointer to incomplete type \u0027const struct mm_struct\u0027\n      return mm-\u003epgd + pgd_index(address);\n               ^~\n\nThe -\u003epage_fault() callback is specific to HMM.  Move it to \u0027struct\nhmm_devmem\u0027 where the unusual asm/pgtable.h dependency can be contained in\ninclude/linux/hmm.h.  Longer term refactoring this dependency out of HMM\nis recommended, but in the meantime memremap.h remains generic.\n\nLink: http://lkml.kernel.org/r/154534090899.3120190.6652620807617715272.stgit@dwillia2-desk3.amr.corp.intel.com\nFixes: 5042db43cc26 (\"mm/ZONE_DEVICE: new type of ZONE_DEVICE memory...\")\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nReviewed-by: \"Jérôme Glisse\" \u003cjglisse@redhat.com\u003e\nCc: Logan Gunthorpe \u003clogang@deltatee.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c86aa7bbfd5568ba8a82d3635d8f7b8a8e06fe54",
      "tree": "02f434c9eecc26f540daccbc43345d9d333ab730",
      "parents": [
        "b43a9990055958e70347c56f90ea2ae32c67334c"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Fri Dec 28 00:39:42 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:52 2018 -0800"
      },
      "message": "hugetlbfs: Use i_mmap_rwsem to fix page fault/truncate race\n\nhugetlbfs page faults can race with truncate and hole punch operations.\nCurrent code in the page fault path attempts to handle this by \u0027backing\nout\u0027 operations if we encounter the race.  One obvious omission in the\ncurrent code is removing a page newly added to the page cache.  This is\npretty straight forward to address, but there is a more subtle and\ndifficult issue of backing out hugetlb reservations.  To handle this\ncorrectly, the \u0027reservation state\u0027 before page allocation needs to be\nnoted so that it can be properly backed out.  There are four distinct\npossibilities for reservation state: shared/reserved, shared/no-resv,\nprivate/reserved and private/no-resv.  Backing out a reservation may\nrequire memory allocation which could fail so that needs to be taken into\naccount as well.\n\nInstead of writing the required complicated code for this rare occurrence,\njust eliminate the race.  i_mmap_rwsem is now held in read mode for the\nduration of page fault processing.  Hold i_mmap_rwsem longer in truncation\nand hold punch code to cover the call to remove_inode_hugepages.\n\nWith this modification, code in remove_inode_hugepages checking for races\nbecomes \u0027dead\u0027 as it can not longer happen.  Remove the dead code and\nexpand comments to explain reasoning.  Similarly, checks for races with\ntruncation in the page fault path can be simplified and removed.\n\n[mike.kravetz@oracle.com: incorporat suggestions from Kirill]\n  Link: http://lkml.kernel.org/r/20181222223013.22193-3-mike.kravetz@oracle.com\nLink: http://lkml.kernel.org/r/20181218223557.5202-3-mike.kravetz@oracle.com\nFixes: ebed4bfc8da8 (\"hugetlb: fix absurd HugePages_Rsvd\")\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: \"Aneesh Kumar K . V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Prakash Sangappa \u003cprakash.sangappa@oracle.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b43a9990055958e70347c56f90ea2ae32c67334c",
      "tree": "91f90f0c3e73ca076cbc4a9780bd7d5a271b6257",
      "parents": [
        "1ecc07fd0a6d350bbf4dc176e0d654661b304a30"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Fri Dec 28 00:39:38 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "hugetlbfs: use i_mmap_rwsem for more pmd sharing synchronization\n\nWhile looking at BUGs associated with invalid huge page map counts, it was\ndiscovered and observed that a huge pte pointer could become \u0027invalid\u0027 and\npoint to another task\u0027s page table.  Consider the following:\n\nA task takes a page fault on a shared hugetlbfs file and calls\nhuge_pte_alloc to get a ptep.  Suppose the returned ptep points to a\nshared pmd.\n\nNow, another task truncates the hugetlbfs file.  As part of truncation, it\nunmaps everyone who has the file mapped.  If the range being truncated is\ncovered by a shared pmd, huge_pmd_unshare will be called.  For all but the\nlast user of the shared pmd, huge_pmd_unshare will clear the pud pointing\nto the pmd.  If the task in the middle of the page fault is not the last\nuser, the ptep returned by huge_pte_alloc now points to another task\u0027s\npage table or worse.  This leads to bad things such as incorrect page\nmap/reference counts or invalid memory references.\n\nTo fix, expand the use of i_mmap_rwsem as follows:\n\n- i_mmap_rwsem is held in read mode whenever huge_pmd_share is called.\n  huge_pmd_share is only called via huge_pte_alloc, so callers of\n  huge_pte_alloc take i_mmap_rwsem before calling.  In addition, callers\n  of huge_pte_alloc continue to hold the semaphore until finished with the\n  ptep.\n\n- i_mmap_rwsem is held in write mode whenever huge_pmd_unshare is\n  called.\n\n[mike.kravetz@oracle.com: add explicit check for mapping !\u003d null]\nLink: http://lkml.kernel.org/r/20181218223557.5202-2-mike.kravetz@oracle.com\nFixes: 39dde65c9940 (\"shared page table for hugetlb page\")\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: \"Aneesh Kumar K . V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Prakash Sangappa \u003cprakash.sangappa@oracle.com\u003e\nCc: Colin Ian King \u003ccolin.king@canonical.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ecc07fd0a6d350bbf4dc176e0d654661b304a30",
      "tree": "9eca4567f5104d8469fcc717d57e5cfcd7306723",
      "parents": [
        "451b9514a59f3379d3bedd5a0e4909ef3ef1b98c"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Fri Dec 28 00:39:34 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "memory_hotplug: add missing newlines to debugging output\n\npages_correctly_probed is missing new lines which means that the line is\nnot printed rightaway but it rather waits for additional printks.\n\nAdd \\n to all three messages in pages_correctly_probed.\n\nLink: http://lkml.kernel.org/r/20181218162307.10518-1-mhocko@kernel.org\nFixes: b77eab7079d9 (\"mm/memory_hotplug: optimize probe routine\")\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\nReviewed-by: Oscar Salvador \u003cosalvador@suse.de\u003e\nReviewed-by: Wei Yang \u003crichard.weiyang@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "451b9514a59f3379d3bedd5a0e4909ef3ef1b98c",
      "tree": "e5815105f8e367c02547caf4730e5cd94ae617c4",
      "parents": [
        "4918e7625ffa82f388ea70538f0e1df20ea35a54"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "ktkhai@virtuozzo.com",
        "time": "Fri Dec 28 00:39:31 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "mm: remove __hugepage_set_anon_rmap()\n\nThis function is identical to __page_set_anon_rmap() since the time, when\nit was introduced (8 years ago).  The patch removes the function, and\nmakes its users to use __page_set_anon_rmap() instead.\n\nLink: http://lkml.kernel.org/r/154504875359.30235.6237926369392564851.stgit@localhost.localdomain\nSigned-off-by: Kirill Tkhai \u003cktkhai@virtuozzo.com\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReviewed-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: Jerome Glisse \u003cjglisse@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4918e7625ffa82f388ea70538f0e1df20ea35a54",
      "tree": "1127a1f676853dc54fc0d6882313e42006845a46",
      "parents": [
        "af3b854492f351d1ff3b4744a83bf5ff7eed4920"
      ],
      "author": {
        "name": "Wei Yang",
        "email": "richard.weiyang@gmail.com",
        "time": "Fri Dec 28 00:39:27 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "include/linux/vmstat.h: remove unused page state adjustment macro\n\nThese four macro are not used anymore.\n\nJust remove them.\n\nLink: http://lkml.kernel.org/r/20181214063211.2290-1-richard.weiyang@gmail.com\nSigned-off-by: Wei Yang \u003crichard.weiyang@gmail.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nReviewed-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af3b854492f351d1ff3b4744a83bf5ff7eed4920",
      "tree": "1f5eb6d523acd89f2d3b57598878fde1136cb060",
      "parents": [
        "ab41ee6879981b3d3a16a1079a33fa6fd043eb3c"
      ],
      "author": {
        "name": "Benjamin Poirier",
        "email": "bpoirier@suse.com",
        "time": "Fri Dec 28 00:39:23 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "mm/page_alloc.c: allow error injection\n\nModel call chain after should_failslab().  Likewise, we can now use a\nkprobe to override the return value of should_fail_alloc_page() and inject\nallocation failures into alloc_page*().\n\nThis will allow injecting allocation failures using the BCC tools even\nwithout building kernel with CONFIG_FAIL_PAGE_ALLOC and booting it with a\nfail_page_alloc\u003d parameter, which incurs some overhead even when failures\nare not being injected.  On the other hand, this patch adds an\nunconditional call to should_fail_alloc_page() from page allocation\nhotpath.  That overhead should be rather negligible with\nCONFIG_FAIL_PAGE_ALLOC\u003dn when there\u0027s no kprobe attached, though.\n\n[vbabka@suse.cz: changelog addition]\nLink: http://lkml.kernel.org/r/20181214074330.18917-1-bpoirier@suse.com\nSigned-off-by: Benjamin Poirier \u003cbpoirier@suse.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Pavel Tatashin \u003cpavel.tatashin@microsoft.com\u003e\nCc: Oscar Salvador \u003cosalvador@suse.de\u003e\nCc: Mike Rapoport \u003crppt@linux.vnet.ibm.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Alexander Duyck \u003calexander.h.duyck@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab41ee6879981b3d3a16a1079a33fa6fd043eb3c",
      "tree": "bebba97531700a014e65998d6a275cf8f9fd3d57",
      "parents": [
        "88dbcbb3a4847f5e6dfeae952d3105497700c128"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Dec 28 00:39:20 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "mm: migrate: drop unused argument of migrate_page_move_mapping()\n\nAll callers of migrate_page_move_mapping() now pass NULL for \u0027head\u0027\nargument.  Drop it.\n\nLink: http://lkml.kernel.org/r/20181211172143.7358-7-jack@suse.cz\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88dbcbb3a4847f5e6dfeae952d3105497700c128",
      "tree": "fece39ef970f6f022e4f010aacbc0b68691a2fae",
      "parents": [
        "89cb0888ca1483ad72648844ddd1b801863a8949"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Dec 28 00:39:16 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "blkdev: avoid migration stalls for blkdev pages\n\nCurrently, block device pages don\u0027t provide a -\u003emigratepage callback and\nthus fallback_migrate_page() is used for them.  This handler cannot deal\nwith dirty pages in async mode and also with the case a buffer head is in\nthe LRU buffer head cache (as it has elevated b_count).  Thus such page\ncan block memory offlining.\n\nFix the problem by using buffer_migrate_page_norefs() for migrating block\ndevice pages.  That function takes care of dropping bh LRU in case\nmigration would fail due to elevated buffer refcount to avoid stalls and\ncan also migrate dirty pages without writing them.\n\nLink: http://lkml.kernel.org/r/20181211172143.7358-6-jack@suse.cz\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89cb0888ca1483ad72648844ddd1b801863a8949",
      "tree": "63b626652f16c12b700c74eff2527a37d36fab61",
      "parents": [
        "84ade7c15ccfb46f852f4e2469b007a33651904d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Dec 28 00:39:12 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "mm: migrate: provide buffer_migrate_page_norefs()\n\nProvide a variant of buffer_migrate_page() that also checks whether there\nare no unexpected references to buffer heads.  This function will then be\nsafe to use for block device pages.\n\n[akpm@linux-foundation.org: remove EXPORT_SYMBOL(buffer_migrate_page_norefs)]\nLink: http://lkml.kernel.org/r/20181211172143.7358-5-jack@suse.cz\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84ade7c15ccfb46f852f4e2469b007a33651904d",
      "tree": "604ec38bbe61f2a7f8010b00ef8cd45b457742f8",
      "parents": [
        "cc4f11e69fd00c61c38619759b07d00631bda5ca"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Dec 28 00:39:09 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "mm: migrate: move migrate_page_lock_buffers()\n\nbuffer_migrate_page() is the only caller of migrate_page_lock_buffers()\nmove it close to it and also drop the now unused stub for !CONFIG_BLOCK.\n\nLink: http://lkml.kernel.org/r/20181211172143.7358-4-jack@suse.cz\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc4f11e69fd00c61c38619759b07d00631bda5ca",
      "tree": "24eca7a3290201f5534870d26c70dbd5f1f28020",
      "parents": [
        "0b3901b38d9d916f634e903ce7cd2a8ddd5b1559"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Dec 28 00:39:05 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "mm: migrate: lock buffers before migrate_page_move_mapping()\n\nLock buffers before calling into migrate_page_move_mapping() so that that\nfunction doesn\u0027t have to know about buffers (which is somewhat unexpected\nanyway) and all the buffer head logic is in buffer_migrate_page().\n\nLink: http://lkml.kernel.org/r/20181211172143.7358-3-jack@suse.cz\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b3901b38d9d916f634e903ce7cd2a8ddd5b1559",
      "tree": "08163d6373d56829d80a1ea60651017d041698d0",
      "parents": [
        "d9367bd06faa1beb2951899272f925bdf877d28b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Dec 28 00:39:01 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "mm: migration: factor out code to compute expected number of page references\n\nPatch series \"mm: migrate: Fix page migration stalls for blkdev pages\".\n\nThis patchset deals with page migration stalls that were reported by our\ncustomer due to a block device page that had a bufferhead that was in the\nbh LRU cache.\n\nThe patchset modifies the page migration code so that bufferheads are\ncompletely handled inside buffer_migrate_page() and then provides a new\nmigration helper for pages with buffer heads that is safe to use even for\nblock device pages and that also deals with bh lrus.\n\nThis patch (of 6):\n\nFactor out function to compute number of expected page references in\nmigrate_page_move_mapping().  Note that we move hpage_nr_pages() and\npage_has_private() checks from under xas_lock_irq() however this is safe\nsince we hold page lock.\n\n[jack@suse.cz: fix expected_page_refs()]\n  Link: http://lkml.kernel.org/r/20181217131710.GB8611@quack2.suse.cz\nLink: http://lkml.kernel.org/r/20181211172143.7358-2-jack@suse.cz\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9367bd06faa1beb2951899272f925bdf877d28b",
      "tree": "3b6bd6d9c6779ffd8ee020d4b01b033efbacc1e1",
      "parents": [
        "d53ce042277a94eadf9a8a31fc41fac54c67dec5"
      ],
      "author": {
        "name": "Wei Yang",
        "email": "richard.weiyang@gmail.com",
        "time": "Fri Dec 28 00:38:58 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "mm, page_alloc: enable pcpu_drain with zone capability\n\ndrain_all_pages is documented to drain per-cpu pages for a given zone (if\nnon-NULL).  The current implementation doesn\u0027t match the description\nthough.  It will drain all pcp pages for all zones that happen to have\ncached pages on the same cpu as the given zone.  This will lead to\npremature pcp cache draining for zones that are not of any interest to the\ncaller - e.g.  compaction, hwpoison or memory offline.\n\nThis forces the page allocator to take locks and potential lock contention\nas a result.\n\nThere is no real reason for this sub-optimal implementation.  Replace\nper-cpu work item with a dedicated structure which contains a pointer to\nthe zone and pass it over to the worker.  This will get the zone\ninformation all the way down to the worker function and do the right job.\n\n[akpm@linux-foundation.org: avoid 80-col tricks]\n[mhocko@suse.com: refactor the whole changelog]\nLink: http://lkml.kernel.org/r/20181212142550.61686-1-richard.weiyang@gmail.com\nSigned-off-by: Wei Yang \u003crichard.weiyang@gmail.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nReviewed-by: Oscar Salvador \u003cosalvador@suse.de\u003e\nReviewed-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d53ce042277a94eadf9a8a31fc41fac54c67dec5",
      "tree": "3da438e716f60f459fead3af0ef0279ad80778c2",
      "parents": [
        "3c0c12cc8f00ca5f81acb010023b8eb13e9a7004"
      ],
      "author": {
        "name": "Sri Krishna chowdary",
        "email": "schowdary@nvidia.com",
        "time": "Fri Dec 28 00:38:54 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "kmemleak: add config to select auto scan\n\nKmemleak scan can be cpu intensive and can stall user tasks at times.  To\nprevent this, add config DEBUG_KMEMLEAK_AUTO_SCAN to enable/disable auto\nscan on boot up.  Also protect first_run with DEBUG_KMEMLEAK_AUTO_SCAN as\nthis is meant for only first automatic scan.\n\nLink: http://lkml.kernel.org/r/1540231723-7087-1-git-send-email-prpatel@nvidia.com\nSigned-off-by: Sri Krishna chowdary \u003cschowdary@nvidia.com\u003e\nSigned-off-by: Sachin Nikam \u003csnikam@nvidia.com\u003e\nSigned-off-by: Prateek \u003cprpatel@nvidia.com\u003e\nReviewed-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c0c12cc8f00ca5f81acb010023b8eb13e9a7004",
      "tree": "d4b287cf806869f491db8ea42a3ff666394b9add",
      "parents": [
        "3cfd22be0ad663248fadfc8f6ffa3e255c394552"
      ],
      "author": {
        "name": "Waiman Long",
        "email": "longman@redhat.com",
        "time": "Fri Dec 28 00:38:51 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "mm/page_alloc.c: don\u0027t call kasan_free_pages() at deferred mem init\n\nWhen CONFIG_KASAN is enabled on large memory SMP systems, the deferrred\npages initialization can take a long time.  Below were the reported init\ntimes on a 8-socket 96-core 4TB IvyBridge system.\n\n  1) Non-debug kernel without CONFIG_KASAN\n     [    8.764222] node 1 initialised, 132086516 pages in 7027ms\n\n  2) Debug kernel with CONFIG_KASAN\n     [  146.288115] node 1 initialised, 132075466 pages in 143052ms\n\nSo the page init time in a debug kernel was 20X of the non-debug kernel.\nThe long init time can be problematic as the page initialization is done\nwith interrupt disabled.  In this particular case, it caused the\nappearance of following warning messages as well as NMI backtraces of all\nthe cores that were doing the initialization.\n\n[   68.240049] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:\n[   68.241000] rcu: \t25-...0: (100 ticks this GP) idle\u003db72/1/0x4000000000000000 softirq\u003d915/915 fqs\u003d16252\n[   68.241000] rcu: \t44-...0: (95 ticks this GP) idle\u003d49a/1/0x4000000000000000 softirq\u003d788/788 fqs\u003d16253\n[   68.241000] rcu: \t54-...0: (104 ticks this GP) idle\u003d03a/1/0x4000000000000000 softirq\u003d721/825 fqs\u003d16253\n[   68.241000] rcu: \t60-...0: (103 ticks this GP) idle\u003dcbe/1/0x4000000000000000 softirq\u003d637/740 fqs\u003d16253\n[   68.241000] rcu: \t72-...0: (105 ticks this GP) idle\u003d786/1/0x4000000000000000 softirq\u003d536/641 fqs\u003d16253\n[   68.241000] rcu: \t84-...0: (99 ticks this GP) idle\u003d292/1/0x4000000000000000 softirq\u003d537/537 fqs\u003d16253\n[   68.241000] rcu: \t111-...0: (104 ticks this GP) idle\u003dbde/1/0x4000000000000000 softirq\u003d474/476 fqs\u003d16253\n[   68.241000] rcu: \t(detected by 13, t\u003d65018 jiffies, g\u003d249, q\u003d2)\n\nThe long init time was mainly caused by the call to kasan_free_pages() to\npoison the newly initialized pages.  On a 4TB system, we are talking about\nalmost 500GB of memory probably on the same node.\n\nIn reality, we may not need to poison the newly initialized pages before\nthey are ever allocated.  So KASAN poisoning of freed pages before the\ncompletion of deferred memory initialization is now disabled.  Those pages\nwill be properly poisoned when they are allocated or freed after deferred\npages initialization is done.\n\nWith this change, the new page initialization time became:\n\n[   21.948010] node 1 initialised, 132075466 pages in 18702ms\n\nThis was still about double the non-debug kernel time, but was much\nbetter than before.\n\nLink: http://lkml.kernel.org/r/1544459388-8736-1-git-send-email-longman@redhat.com\nSigned-off-by: Waiman Long \u003clongman@redhat.com\u003e\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andrey Ryabinin \u003caryabinin@virtuozzo.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Pasha Tatashin \u003cPavel.Tatashin@microsoft.com\u003e\nCc: Oscar Salvador \u003cosalvador@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3cfd22be0ad663248fadfc8f6ffa3e255c394552",
      "tree": "80ff16175ad74737c24414f9a714a510d72cf12b",
      "parents": [
        "125b860b251ad226b1384b6db06be37485127f69"
      ],
      "author": {
        "name": "Peter Xu",
        "email": "peterx@redhat.com",
        "time": "Fri Dec 28 00:38:47 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "userfaultfd: clear flag if remap event not enabled\n\nWhen the process being tracked does mremap() without\nUFFD_FEATURE_EVENT_REMAP on the corresponding tracking uffd file handle,\nwe should not generate the remap event, and at the same time we should\nclear all the uffd flags on the new VMA.  Without this patch, we can still\nhave the VM_UFFD_MISSING|VM_UFFD_WP flags on the new VMA even the fault\nhandling process does not even know the existance of the VMA.\n\nLink: http://lkml.kernel.org/r/20181211053409.20317-1-peterx@redhat.com\nSigned-off-by: Peter Xu \u003cpeterx@redhat.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Mike Rapoport \u003crppt@linux.vnet.ibm.com\u003e\nReviewed-by: William Kucharski \u003cwilliam.kucharski@oracle.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Mike Rapoport \u003crppt@linux.vnet.ibm.com\u003e\nCc: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Pavel Emelyanov \u003cxemul@virtuozzo.com\u003e\nCc: Pravin Shedge \u003cpravin.shedge4linux@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "125b860b251ad226b1384b6db06be37485127f69",
      "tree": "412bd27ba3e790e00007e53a2a8cc31f88a82f2b",
      "parents": [
        "fcf9a0ef8dc3a3fb8be9de12b0e006c85ed5dc29"
      ],
      "author": {
        "name": "Pingfan Liu",
        "email": "kernelfans@gmail.com",
        "time": "Fri Dec 28 00:38:43 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "mm/pageblock: throw compile error if pageblock_bits cannot hold MIGRATE_TYPES\n\nCurrently, NR_PAGEBLOCK_BITS and MIGRATE_TYPES are not associated by code.\nIf someone adds extra migrate type, then he may forget to enlarge the\nNR_PAGEBLOCK_BITS.  Hence it requires some way to fix.\n\nNR_PAGEBLOCK_BITS depends on MIGRATE_TYPES, while these macro spread on\ntwo different .h file with reverse dependency, it is a little hard to\nrefer to MIGRATE_TYPES in pageblock-flag.h.  This patch tries to remind\nsuch relation in compiling-time.\n\nLink: http://lkml.kernel.org/r/1544508709-11358-1-git-send-email-kernelfans@gmail.com\nSigned-off-by: Pingfan Liu \u003ckernelfans@gmail.com\u003e\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Pavel Tatashin \u003cpavel.tatashin@microsoft.com\u003e\nCc: Oscar Salvador \u003cosalvador@suse.de\u003e\nCc: Mike Rapoport \u003crppt@linux.vnet.ibm.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Alexander Duyck \u003calexander.h.duyck@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fcf9a0ef8dc3a3fb8be9de12b0e006c85ed5dc29",
      "tree": "cc029e950d0384e3486ef6e3220a77300859fde2",
      "parents": [
        "e0975b2aae0e669f995f7d5f11db25c3080ae11c"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "ktkhai@virtuozzo.com",
        "time": "Fri Dec 28 00:38:40 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "ksm: react on changing \"sleep_millisecs\" parameter faster\n\nksm thread unconditionally sleeps in ksm_scan_thread() after each\niteration:\n\n\tschedule_timeout_interruptible(\n\t\tmsecs_to_jiffies(ksm_thread_sleep_millisecs))\n\nThe timeout is configured in /sys/kernel/mm/ksm/sleep_millisecs.\n\nIn case of user writes a big value by a mistake, and the thread enters\ninto schedule_timeout_interruptible(), it\u0027s not possible to cancel the\nsleep by writing a new smaler value; the thread is just sleeping till\ntimeout expires.\n\nThe patch fixes the problem by waking the thread each time after the value\nis updated.\n\nThis also may be useful for debug purposes; and also for userspace\ndaemons, which change sleep_millisecs value in dependence of system load.\n\nLink: http://lkml.kernel.org/r/154454107680.3258.3558002210423531566.stgit@localhost.localdomain\nSigned-off-by: Kirill Tkhai \u003cktkhai@virtuozzo.com\u003e\nAcked-by: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0975b2aae0e669f995f7d5f11db25c3080ae11c",
      "tree": "85ef72a9df87997d6b35f298a0cb5230da7f1552",
      "parents": [
        "bb8965bd82fd4ed433a888f1383016ab3fa0d7de"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Fri Dec 28 00:38:36 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:51 2018 -0800"
      },
      "message": "mm, fault_around: do not take a reference to a locked page\n\nfilemap_map_pages takes a speculative reference to each page in the range\nbefore it tries to lock that page.  While this is correct it also can\ninfluence page migration which will bail out when seeing an elevated\nreference count.  The faultaround code would bail on seeing a locked page\nso we can pro-actively check the PageLocked bit before\npage_cache_get_speculative and prevent from pointless reference count\nchurn.\n\nLink: http://lkml.kernel.org/r/20181211142741.2607-4-mhocko@kernel.org\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\nSuggested-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nReviewed-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: William Kucharski \u003cwilliam.kucharski@oracle.com\u003e\nCc: Oscar Salvador \u003cosalvador@suse.de\u003e\nCc: Pavel Tatashin \u003cpasha.tatashin@soleen.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb8965bd82fd4ed433a888f1383016ab3fa0d7de",
      "tree": "17c14a8e7e9249fd6ba64e1fcd76414aa1c62432",
      "parents": [
        "a85009c377929d119fad5a75a16c4b7198946603"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Fri Dec 28 00:38:32 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "mm, memory_hotplug: deobfuscate migration part of offlining\n\nMemory migration might fail during offlining and we keep retrying in that\ncase.  This is currently obfuscated by goto retry loop.  The code is hard\nto follow and as a result it is even suboptimal becase each retry round\nscans the full range from start_pfn even though we have successfully\nscanned/migrated [start_pfn, pfn] range already.  This is all only because\ncheck_pages_isolated failure has to rescan the full range again.\n\nDe-obfuscate the migration retry loop by promoting it to a real for loop.\nIn fact remove the goto altogether by making it a proper double loop\n(yeah, gotos are nasty in this specific case).  In the end we will get a\nslightly more optimal code which is better readable.\n\n[akpm@linux-foundation.org: reflow comments to 80 cols]\nLink: http://lkml.kernel.org/r/20181211142741.2607-3-mhocko@kernel.org\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\nReviewed-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nReviewed-by: Oscar Salvador \u003cosalvador@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Pavel Tatashin \u003cpasha.tatashin@soleen.com\u003e\nCc: William Kucharski \u003cwilliam.kucharski@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a85009c377929d119fad5a75a16c4b7198946603",
      "tree": "4c014c365e643ed47de58fb3473afcbbf979cdd5",
      "parents": [
        "a1400af755631f5267f7cc3d0fda5ba72f58d7d3"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Fri Dec 28 00:38:29 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "mm, memory_hotplug: try to migrate full pfn range\n\nPatch series \"few memory offlining enhancements\".\n\nI have been chasing memory offlining not making progress recently.  On the\nway I have noticed few weird decisions in the code.  The migration itself\nis restricted without a reasonable justification and the retry loop around\nthe migration is quite messy.  This is addressed by patch 1 and patch 2.\n\nPatch 3 is targeting on the faultaround code which has been a hot\ncandidate for the initial issue reported upstream [2] and that I am\ndebugging internally.  It turned out to be not the main contributor in the\nend but I believe we should address it regardless.  See the patch\ndescription for more details.\n\n[1] http://lkml.kernel.org/r/20181120134323.13007-1-mhocko@kernel.org\n[2] http://lkml.kernel.org/r/20181114070909.GB2653@MiWiFi-R3L-srv\n\nThis patch (of 3):\n\ndo_migrate_range has been limiting the number of pages to migrate to 256\nfor some reason which is not documented.  Even if the limit made some\nsense back then when it was introduced it doesn\u0027t really serve a good\npurpose these days.  If the range contains huge pages then we break out of\nthe loop too early and go through LRU and pcp caches draining and\nscan_movable_pages is quite suboptimal.\n\nThe only reason to limit the number of pages I can think of is to reduce\nthe potential time to react on the fatal signal.  But even then the number\nof pages is a questionable metric because even a single page migration\nmight block in a non-killable state (e.g.  __unmap_and_move).\n\nRemove the limit and offline the full requested range (this is one\nmemblock worth of pages with the current code).  Should we ever get a\nreport that offlining takes too long to react on fatal signal then we\nshould rather fix the core migration to use killable waits and bailout\non a signal.\n\nLink: http://lkml.kernel.org/r/20181211142741.2607-1-mhocko@kernel.org\nLink: http://lkml.kernel.org/r/20181211142741.2607-2-mhocko@kernel.org\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\nReviewed-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nReviewed-by: Pavel Tatashin \u003cpasha.tatashin@soleen.com\u003e\nReviewed-by: Oscar Salvador \u003cosalvador@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: William Kucharski \u003cwilliam.kucharski@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1400af755631f5267f7cc3d0fda5ba72f58d7d3",
      "tree": "4f178a11b1ae64bc94bb7b073b3efb5a6558b9b1",
      "parents": [
        "7635d9cbe8327e131a1d3d8517dc186c2796ce2e"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Fri Dec 28 00:38:25 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "mm, proc: report PR_SET_THP_DISABLE in proc\n\nDavid Rientjes has reported that commit 1860033237d4 (\"mm: make\nPR_SET_THP_DISABLE immediately active\") has changed the way how we\nreport THPable VMAs to the userspace.  Their monitoring tool is\ntriggering false alarms on PR_SET_THP_DISABLE tasks because it considers\nan insufficient THP usage as a memory fragmentation resp.  memory\npressure issue.\n\nBefore the said commit each newly created VMA inherited VM_NOHUGEPAGE\nflag and that got exposed to the userspace via /proc/\u003cpid\u003e/smaps file.\nThis implementation had its downsides as explained in the commit message\nbut it is true that the userspace doesn\u0027t have any means to query for\nthe process wide THP enabled/disabled status.\n\nPR_SET_THP_DISABLE is a process wide flag so it makes a lot of sense to\nexport in the process wide context rather than per-vma.  Introduce a new\nfield to /proc/\u003cpid\u003e/status which export this status.  If\nPR_SET_THP_DISABLE is used then it reports false same as when the THP is\nnot compiled in.  It doesn\u0027t consider the global THP status because we\nalready export that information via sysfs\n\nLink: http://lkml.kernel.org/r/20181211143641.3503-4-mhocko@kernel.org\nFixes: 1860033237d4 (\"mm: make PR_SET_THP_DISABLE immediately active\")\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nReported-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Mike Rapoport \u003crppt@linux.ibm.com\u003e\nCc: Paul Oppenheimer \u003cbepvte@gmail.com\u003e\nCc: William Kucharski \u003cwilliam.kucharski@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7635d9cbe8327e131a1d3d8517dc186c2796ce2e",
      "tree": "ca9581d3917401090e8a44b5cc540f3c9e7ecfc4",
      "parents": [
        "7550c6079846a24f30d15ac75a941c8515dbedfb"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Fri Dec 28 00:38:21 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "mm, thp, proc: report THP eligibility for each vma\n\nUserspace falls short when trying to find out whether a specific memory\nrange is eligible for THP.  There are usecases that would like to know\nthat\nhttp://lkml.kernel.org/r/alpine.DEB.2.21.1809251248450.50347@chino.kir.corp.google.com\n: This is used to identify heap mappings that should be able to fault thp\n: but do not, and they normally point to a low-on-memory or fragmentation\n: issue.\n\nThe only way to deduce this now is to query for hg resp.  nh flags and\nconfronting the state with the global setting.  Except that there is also\nPR_SET_THP_DISABLE that might change the picture.  So the final logic is\nnot trivial.  Moreover the eligibility of the vma depends on the type of\nVMA as well.  In the past we have supported only anononymous memory VMAs\nbut things have changed and shmem based vmas are supported as well these\ndays and the query logic gets even more complicated because the\neligibility depends on the mount option and another global configuration\nknob.\n\nSimplify the current state and report the THP eligibility in\n/proc/\u003cpid\u003e/smaps for each existing vma.  Reuse\ntransparent_hugepage_enabled for this purpose.  The original\nimplementation of this function assumes that the caller knows that the vma\nitself is supported for THP so make the core checks into\n__transparent_hugepage_enabled and use it for existing callers.\n__show_smap just use the new transparent_hugepage_enabled which also\nchecks the vma support status (please note that this one has to be out of\nline due to include dependency issues).\n\n[mhocko@kernel.org: fix oops with NULL -\u003ef_mapping]\n  Link: http://lkml.kernel.org/r/20181224185106.GC16738@dhcp22.suse.cz\nLink: http://lkml.kernel.org/r/20181211143641.3503-3-mhocko@kernel.org\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Mike Rapoport \u003crppt@linux.ibm.com\u003e\nCc: Paul Oppenheimer \u003cbepvte@gmail.com\u003e\nCc: William Kucharski \u003cwilliam.kucharski@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7550c6079846a24f30d15ac75a941c8515dbedfb",
      "tree": "8e414eeaa912703e0393b85a4aae2bbb48f3d0b0",
      "parents": [
        "0614ce9776b037b6a08a9adcbfcc382c0053b178"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Fri Dec 28 00:38:17 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "mm, proc: be more verbose about unstable VMA flags in /proc/\u003cpid\u003e/smaps\n\nPatch series \"THP eligibility reporting via proc\".\n\nThis series of three patches aims at making THP eligibility reporting much\nmore robust and long term sustainable.  The trigger for the change is a\nregression report [2] and the long follow up discussion.  In short the\nspecific application didn\u0027t have good API to query whether a particular\nmapping can be backed by THP so it has used VMA flags to workaround that.\nThese flags represent a deep internal state of VMAs and as such they\nshould be used by userspace with a great deal of caution.\n\nA similar has happened for [3] when users complained that VM_MIXEDMAP is\nno longer set on DAX mappings.  Again a lack of a proper API led to an\nabuse.\n\nThe first patch in the series tries to emphasise that that the semantic of\nflags might change and any application consuming those should be really\ncareful.\n\nThe remaining two patches provide a more suitable interface to address [2]\nand provide a consistent API to query the THP status both for each VMA and\nprocess wide as well.  [1]\n\nhttp://lkml.kernel.org/r/20181120103515.25280-1-mhocko@kernel.org [2]\nhttp://lkml.kernel.org/r/http://lkml.kernel.org/r/alpine.DEB.2.21.1809241054050.224429@chino.kir.corp.google.com\n[3] http://lkml.kernel.org/r/20181002100531.GC4135@quack2.suse.cz\n\nThis patch (of 3):\n\nEven though vma flags exported via /proc/\u003cpid\u003e/smaps are explicitly\ndocumented to be not guaranteed for future compatibility the warning\ndoesn\u0027t go far enough because it doesn\u0027t mention semantic changes to those\nflags.  And they are important as well because these flags are a deep\nimplementation internal to the MM code and the semantic might change at\nany time.\n\nLet\u0027s consider two recent examples:\nhttp://lkml.kernel.org/r/20181002100531.GC4135@quack2.suse.cz\n: commit e1fb4a086495 \"dax: remove VM_MIXEDMAP for fsdax and device dax\" has\n: removed VM_MIXEDMAP flag from DAX VMAs. Now our testing shows that in the\n: mean time certain customer of ours started poking into /proc/\u003cpid\u003e/smaps\n: and looks at VMA flags there and if VM_MIXEDMAP is missing among the VMA\n: flags, the application just fails to start complaining that DAX support is\n: missing in the kernel.\n\nhttp://lkml.kernel.org/r/alpine.DEB.2.21.1809241054050.224429@chino.kir.corp.google.com\n: Commit 1860033237d4 (\"mm: make PR_SET_THP_DISABLE immediately active\")\n: introduced a regression in that userspace cannot always determine the set\n: of vmas where thp is ineligible.\n: Userspace relies on the \"nh\" flag being emitted as part of /proc/pid/smaps\n: to determine if a vma is eligible to be backed by hugepages.\n: Previous to this commit, prctl(PR_SET_THP_DISABLE, 1) would cause thp to\n: be disabled and emit \"nh\" as a flag for the corresponding vmas as part of\n: /proc/pid/smaps.  After the commit, thp is disabled by means of an mm\n: flag and \"nh\" is not emitted.\n: This causes smaps parsing libraries to assume a vma is eligible for thp\n: and ends up puzzling the user on why its memory is not backed by thp.\n\nIn both cases userspace was relying on a semantic of a specific VMA flag.\nThe primary reason why that happened is a lack of a proper interface.\nWhile this has been worked on and it will be fixed properly, it seems that\nour wording could see some refinement and be more vocal about semantic\naspect of these flags as well.\n\nLink: http://lkml.kernel.org/r/20181211143641.3503-2-mhocko@kernel.org\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Mike Rapoport \u003crppt@linux.ibm.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Paul Oppenheimer \u003cbepvte@gmail.com\u003e\nCc: William Kucharski \u003cwilliam.kucharski@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0614ce9776b037b6a08a9adcbfcc382c0053b178",
      "tree": "82b760ca62faae16e6e780f12d43269602203598",
      "parents": [
        "ac46d4f3c43241ffa23d5bf36153a0830c0e02cc"
      ],
      "author": {
        "name": "Wei Yang",
        "email": "richard.weiyang@gmail.com",
        "time": "Fri Dec 28 00:38:13 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "include/linux/memory_hotplug.h: remove duplicate declaration of offline_pages()\n\noffline_pages() is already declared in this file.\n\nJust remove the duplicated one.\n\nLink: http://lkml.kernel.org/r/20181205031357.24769-1-richard.weiyang@gmail.com\nSigned-off-by: Wei Yang \u003crichard.weiyang@gmail.com\u003e\nReviewed-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac46d4f3c43241ffa23d5bf36153a0830c0e02cc",
      "tree": "8fb9505fd38170afe5c9ba8ff0ed54bbe6caaf4d",
      "parents": [
        "5d6527a784f7a6d247961e046e830de8d71b47d1"
      ],
      "author": {
        "name": "Jérôme Glisse",
        "email": "jglisse@redhat.com",
        "time": "Fri Dec 28 00:38:09 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "mm/mmu_notifier: use structure for invalidate_range_start/end calls v2\n\nTo avoid having to change many call sites everytime we want to add a\nparameter use a structure to group all parameters for the mmu_notifier\ninvalidate_range_start/end cakks.  No functional changes with this patch.\n\n[akpm@linux-foundation.org: coding style fixes]\nLink: http://lkml.kernel.org/r/20181205053628.3210-3-jglisse@redhat.com\nSigned-off-by: Jérôme Glisse \u003cjglisse@redhat.com\u003e\nAcked-by: Christian König \u003cchristian.koenig@amd.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Matthew Wilcox \u003cmawilcox@microsoft.com\u003e\nCc: Ross Zwisler \u003czwisler@kernel.org\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nCc: Radim Krcmar \u003crkrcmar@redhat.com\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Felix Kuehling \u003cfelix.kuehling@amd.com\u003e\nCc: Ralph Campbell \u003crcampbell@nvidia.com\u003e\nCc: John Hubbard \u003cjhubbard@nvidia.com\u003e\nFrom: Jérôme Glisse \u003cjglisse@redhat.com\u003e\nSubject: mm/mmu_notifier: use structure for invalidate_range_start/end calls v3\n\nfix build warning in migrate.c when CONFIG_MMU_NOTIFIER\u003dn\n\nLink: http://lkml.kernel.org/r/20181213171330.8489-3-jglisse@redhat.com\nSigned-off-by: Jérôme Glisse \u003cjglisse@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d6527a784f7a6d247961e046e830de8d71b47d1",
      "tree": "9326a7abb7aab8983770840a4d52e07becb76c6d",
      "parents": [
        "b15c87263a69272423771118c653e9a1d0672caa"
      ],
      "author": {
        "name": "Jérôme Glisse",
        "email": "jglisse@redhat.com",
        "time": "Fri Dec 28 00:38:05 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "mm/mmu_notifier: use structure for invalidate_range_start/end callback\n\nPatch series \"mmu notifier contextual informations\", v2.\n\nThis patchset adds contextual information, why an invalidation is\nhappening, to mmu notifier callback.  This is necessary for user of mmu\nnotifier that wish to maintains their own data structure without having to\nadd new fields to struct vm_area_struct (vma).\n\nFor instance device can have they own page table that mirror the process\naddress space.  When a vma is unmap (munmap() syscall) the device driver\ncan free the device page table for the range.\n\nToday we do not have any information on why a mmu notifier call back is\nhappening and thus device driver have to assume that it is always an\nmunmap().  This is inefficient at it means that it needs to re-allocate\ndevice page table on next page fault and rebuild the whole device driver\ndata structure for the range.\n\nOther use case beside munmap() also exist, for instance it is pointless\nfor device driver to invalidate the device page table when the\ninvalidation is for the soft dirtyness tracking.  Or device driver can\noptimize away mprotect() that change the page table permission access for\nthe range.\n\nThis patchset enables all this optimizations for device drivers.  I do not\ninclude any of those in this series but another patchset I am posting will\nleverage this.\n\nThe patchset is pretty simple from a code point of view.  The first two\npatches consolidate all mmu notifier arguments into a struct so that it is\neasier to add/change arguments.  The last patch adds the contextual\ninformation (munmap, protection, soft dirty, clear, ...).\n\nThis patch (of 3):\n\nTo avoid having to change many callback definition everytime we want to\nadd a parameter use a structure to group all parameters for the\nmmu_notifier invalidate_range_start/end callback.  No functional changes\nwith this patch.\n\n[akpm@linux-foundation.org: fix drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c kerneldoc]\nLink: http://lkml.kernel.org/r/20181205053628.3210-2-jglisse@redhat.com\nSigned-off-by: Jérôme Glisse \u003cjglisse@redhat.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Jason Gunthorpe \u003cjgg@mellanox.com\u003e\t[infiniband]\nCc: Matthew Wilcox \u003cmawilcox@microsoft.com\u003e\nCc: Ross Zwisler \u003czwisler@kernel.org\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nCc: Radim Krcmar \u003crkrcmar@redhat.com\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Christian Koenig \u003cchristian.koenig@amd.com\u003e\nCc: Felix Kuehling \u003cfelix.kuehling@amd.com\u003e\nCc: Ralph Campbell \u003crcampbell@nvidia.com\u003e\nCc: John Hubbard \u003cjhubbard@nvidia.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b15c87263a69272423771118c653e9a1d0672caa",
      "tree": "05424be327716b92a99ab8e43df0f1d938b59999",
      "parents": [
        "9f1eb38e0e1131e75cc4ac684391b25d70282589"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Fri Dec 28 00:38:01 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "hwpoison, memory_hotplug: allow hwpoisoned pages to be offlined\n\nWe have received a bug report that an injected MCE about faulty memory\nprevents memory offline to succeed on 4.4 base kernel.  The underlying\nreason was that the HWPoison page has an elevated reference count and the\nmigration keeps failing.  There are two problems with that.  First of all\nit is dubious to migrate the poisoned page because we know that accessing\nthat memory is possible to fail.  Secondly it doesn\u0027t make any sense to\nmigrate a potentially broken content and preserve the memory corruption\nover to a new location.\n\nOscar has found out that 4.4 and the current upstream kernels behave\nslightly differently with his simply testcase\n\n\u003d\u003d\u003d\n\nint main(void)\n{\n        int ret;\n        int i;\n        int fd;\n        char *array \u003d malloc(4096);\n        char *array_locked \u003d malloc(4096);\n\n        fd \u003d open(\"/tmp/data\", O_RDONLY);\n        read(fd, array, 4095);\n\n        for (i \u003d 0; i \u003c 4096; i++)\n                array_locked[i] \u003d \u0027d\u0027;\n\n        ret \u003d mlock((void *)PAGE_ALIGN((unsigned long)array_locked), sizeof(array_locked));\n        if (ret)\n                perror(\"mlock\");\n\n        sleep (20);\n\n        ret \u003d madvise((void *)PAGE_ALIGN((unsigned long)array_locked), 4096, MADV_HWPOISON);\n        if (ret)\n                perror(\"madvise\");\n\n        for (i \u003d 0; i \u003c 4096; i++)\n                array_locked[i] \u003d \u0027d\u0027;\n\n        return 0;\n}\n\u003d\u003d\u003d\n\n+ offline this memory.\n\nIn 4.4 kernels he saw the hwpoisoned page to be returned back to the LRU\nlist\nkernel:  [\u003cffffffff81019ac9\u003e] dump_trace+0x59/0x340\nkernel:  [\u003cffffffff81019e9a\u003e] show_stack_log_lvl+0xea/0x170\nkernel:  [\u003cffffffff8101ac71\u003e] show_stack+0x21/0x40\nkernel:  [\u003cffffffff8132bb90\u003e] dump_stack+0x5c/0x7c\nkernel:  [\u003cffffffff810815a1\u003e] warn_slowpath_common+0x81/0xb0\nkernel:  [\u003cffffffff811a275c\u003e] __pagevec_lru_add_fn+0x14c/0x160\nkernel:  [\u003cffffffff811a2eed\u003e] pagevec_lru_move_fn+0xad/0x100\nkernel:  [\u003cffffffff811a334c\u003e] __lru_cache_add+0x6c/0xb0\nkernel:  [\u003cffffffff81195236\u003e] add_to_page_cache_lru+0x46/0x70\nkernel:  [\u003cffffffffa02b4373\u003e] extent_readpages+0xc3/0x1a0 [btrfs]\nkernel:  [\u003cffffffff811a16d7\u003e] __do_page_cache_readahead+0x177/0x200\nkernel:  [\u003cffffffff811a18c8\u003e] ondemand_readahead+0x168/0x2a0\nkernel:  [\u003cffffffff8119673f\u003e] generic_file_read_iter+0x41f/0x660\nkernel:  [\u003cffffffff8120e50d\u003e] __vfs_read+0xcd/0x140\nkernel:  [\u003cffffffff8120e9ea\u003e] vfs_read+0x7a/0x120\nkernel:  [\u003cffffffff8121404b\u003e] kernel_read+0x3b/0x50\nkernel:  [\u003cffffffff81215c80\u003e] do_execveat_common.isra.29+0x490/0x6f0\nkernel:  [\u003cffffffff81215f08\u003e] do_execve+0x28/0x30\nkernel:  [\u003cffffffff81095ddb\u003e] call_usermodehelper_exec_async+0xfb/0x130\nkernel:  [\u003cffffffff8161c045\u003e] ret_from_fork+0x55/0x80\n\nAnd that latter confuses the hotremove path because an LRU page is\nattempted to be migrated and that fails due to an elevated reference\ncount.  It is quite possible that the reuse of the HWPoisoned page is some\nkind of fixed race condition but I am not really sure about that.\n\nWith the upstream kernel the failure is slightly different.  The page\ndoesn\u0027t seem to have LRU bit set but isolate_movable_page simply fails and\ndo_migrate_range simply puts all the isolated pages back to LRU and\ntherefore no progress is made and scan_movable_pages finds same set of\npages over and over again.\n\nFix both cases by explicitly checking HWPoisoned pages before we even try\nto get reference on the page, try to unmap it if it is still mapped.  As\nexplained by Naoya:\n\n: Hwpoison code never unmapped those for no big reason because\n: Ksm pages never dominate memory, so we simply didn\u0027t have strong\n: motivation to save the pages.\n\nAlso put WARN_ON(PageLRU) in case there is a race and we can hit LRU\nHWPoison pages which shouldn\u0027t happen but I couldn\u0027t convince myself about\nthat.  Naoya has noted the following:\n\n: Theoretically no such gurantee, because try_to_unmap() doesn\u0027t have a\n: guarantee of success and then memory_failure() returns immediately\n: when hwpoison_user_mappings fails.\n: Or the following code (comes after hwpoison_user_mappings block) also impli\u003d\n: es\n: that the target page can still have PageLRU flag.\n:\n:         /*\n:          * Torn down by someone else?\n:          */\n:         if (PageLRU(p) \u0026\u0026 !PageSwapCache(p) \u0026\u0026 p-\u003emapping \u003d3D\u003d3D NULL) {\n:                 action_result(pfn, MF_MSG_TRUNCATED_LRU, MF_IGNORED);\n:                 res \u003d3D -EBUSY;\n:                 goto out;\n:         }\n:\n: So I think it\u0027s OK to keep \"if (WARN_ON(PageLRU(page)))\" block in\n: current version of your patch.\n\nLink: http://lkml.kernel.org/r/20181206120135.14079-1-mhocko@kernel.org\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\nReviewed-by: Oscar Salvador \u003cosalvador@suse.com\u003e\nDebugged-by: Oscar Salvador \u003cosalvador@suse.com\u003e\nTested-by: Oscar Salvador \u003cosalvador@suse.com\u003e\nAcked-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nAcked-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9f1eb38e0e1131e75cc4ac684391b25d70282589",
      "tree": "79651f0bc6fa5dcba7c477bee0ffef8a3e4c5e00",
      "parents": [
        "8e2d43405b22e98cf5f3730c1829ec1fdbe17ae7"
      ],
      "author": {
        "name": "Oscar Salvador",
        "email": "osalvador@suse.de",
        "time": "Fri Dec 28 00:37:57 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "mm, kmemleak: little optimization while scanning\n\nkmemleak_scan() goes through all online nodes and tries to scan all used\npages.\n\nWe can do better and use pfn_to_online_page(), so in case we have\nCONFIG_MEMORY_HOTPLUG, offlined pages will be skiped automatically.  For\nboxes where CONFIG_MEMORY_HOTPLUG is not present, pfn_to_online_page()\nwill fallback to pfn_valid().\n\nAnother little optimization is to check if the page belongs to the node we\nare currently checking, so in case we have nodes interleaved we will not\ncheck the same pfn multiple times.\n\nI ran some tests:\n\nAdd some memory to node1 and node2 making it interleaved:\n\n(qemu) object_add memory-backend-ram,id\u003dram0,size\u003d1G\n(qemu) device_add pc-dimm,id\u003ddimm0,memdev\u003dram0,node\u003d1\n(qemu) object_add memory-backend-ram,id\u003dram1,size\u003d1G\n(qemu) device_add pc-dimm,id\u003ddimm1,memdev\u003dram1,node\u003d2\n(qemu) object_add memory-backend-ram,id\u003dram2,size\u003d1G\n(qemu) device_add pc-dimm,id\u003ddimm2,memdev\u003dram2,node\u003d1\n\nThen, we offline that memory:\n # for i in {32..39} ; do echo \"offline\" \u003e /sys/devices/system/node/node1/memory$i/state;done\n # for i in {48..55} ; do echo \"offline\" \u003e /sys/devices/system/node/node1/memory$i/state;don\n # for i in {40..47} ; do echo \"offline\" \u003e /sys/devices/system/node/node2/memory$i/state;done\n\nAnd we run kmemleak_scan:\n\n # echo \"scan\" \u003e /sys/kernel/debug/kmemleak\n\nbefore the patch:\n\nkmemleak: time spend: 41596 us\n\nafter the patch:\n\nkmemleak: time spend: 34899 us\n\n[akpm@linux-foundation.org: remove stray newline, per Oscar]\nLink: http://lkml.kernel.org/r/20181206131918.25099-1-osalvador@suse.de\nSigned-off-by: Oscar Salvador \u003cosalvador@suse.de\u003e\nReviewed-by: Wei Yang \u003crichard.weiyang@gmail.com\u003e\nSuggested-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e2d43405b22e98cf5f3730c1829ec1fdbe17ae7",
      "tree": "c30cf15a54d92a9e56c9c2c1e5fd9455e816b432",
      "parents": [
        "36ddc5a78c878e9b10c323d2fe88b0dae2f487eb"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Fri Dec 28 00:37:53 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "lib/ioremap: ensure break-before-make is used for huge p4d mappings\n\nWhilst no architectures actually enable support for huge p4d mappings in\nthe vmap area, the code that is implemented should be using\nbreak-before-make, as we do for pud and pmd huge entries.\n\nLink: http://lkml.kernel.org/r/1544120495-17438-6-git-send-email-will.deacon@arm.com\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nReviewed-by: Toshi Kani \u003ctoshi.kani@hpe.com\u003e\nCc: Chintan Pandya \u003ccpandya@codeaurora.org\u003e\nCc: Toshi Kani \u003ctoshi.kani@hpe.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Sean Christopherson \u003csean.j.christopherson@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "36ddc5a78c878e9b10c323d2fe88b0dae2f487eb",
      "tree": "49e1698683500be2c4b481053af814a75922a755",
      "parents": [
        "48e178ab0d630b8b60deca64b22b22e68818777e"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Fri Dec 28 00:37:49 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "lib/ioremap: ensure phys_addr actually corresponds to a physical address\n\nThe current ioremap() code uses a phys_addr variable at each level of page\ntable, which is confusingly offset by subtracting the base virtual address\nbeing mapped so that adding the current virtual address back on when\niterating through the page table entries gives back the corresponding\nphysical address.\n\nThis is fairly confusing and results in all users of phys_addr having to\nadd the current virtual address back on.  Instead, this patch just updates\nphys_addr when iterating over the page table entries, ensuring that it\u0027s\nalways up-to-date and doesn\u0027t require explicit offsetting.\n\nLink: http://lkml.kernel.org/r/1544120495-17438-5-git-send-email-will.deacon@arm.com\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nTested-by: Sean Christopherson \u003csean.j.christopherson@intel.com\u003e\nReviewed-by: Sean Christopherson \u003csean.j.christopherson@intel.com\u003e\nCc: Chintan Pandya \u003ccpandya@codeaurora.org\u003e\nCc: Toshi Kani \u003ctoshi.kani@hpe.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Sean Christopherson \u003csean.j.christopherson@intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48e178ab0d630b8b60deca64b22b22e68818777e",
      "tree": "11569de76f69ed17e53f8a2a73e20ff5c8b45fad",
      "parents": [
        "9c006972c3fedbea43fde9667686e5949eba9981"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Fri Dec 28 00:37:45 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "x86/pgtable: drop pXd_none() checks from pXd_free_pYd_table()\n\nThe core code already has a check for pXd_none(), so remove it from the\narchitecture implementation.\n\nLink: http://lkml.kernel.org/r/1544120495-17438-4-git-send-email-will.deacon@arm.com\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Toshi Kani \u003ctoshi.kani@hpe.com\u003e\nCc: Chintan Pandya \u003ccpandya@codeaurora.org\u003e\nCc: Toshi Kani \u003ctoshi.kani@hpe.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Sean Christopherson \u003csean.j.christopherson@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c006972c3fedbea43fde9667686e5949eba9981",
      "tree": "ef378d4ffae578d3fb0821e7fe118a979bad099f",
      "parents": [
        "d239865ac804c91a621294ca7bece4241b006fae"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Fri Dec 28 00:37:42 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "arm64: mmu: drop pXd_present() checks from pXd_free_pYd_table()\n\nThe core code already has a check for pXd_none(), so remove it from the\narchitecture implementation.\n\nLink: http://lkml.kernel.org/r/1544120495-17438-3-git-send-email-will.deacon@arm.com\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Chintan Pandya \u003ccpandya@codeaurora.org\u003e\nCc: Toshi Kani \u003ctoshi.kani@hpe.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Sean Christopherson \u003csean.j.christopherson@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d239865ac804c91a621294ca7bece4241b006fae",
      "tree": "0baa3b8a25988575a518e5c400934bde2ccd4dc5",
      "parents": [
        "c16eb000ca03f8cdc2153bca6c977b6f898e6934"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Fri Dec 28 00:37:38 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "ioremap: rework pXd_free_pYd_page() API\n\nThe recently merged API for ensuring break-before-make on page-table\nentries when installing huge mappings in the vmalloc/ioremap region is\nfairly counter-intuitive, resulting in the arch freeing functions (e.g.\npmd_free_pte_page()) being called even on entries that aren\u0027t present.\nThis resulted in a minor bug in the arm64 implementation, giving rise to\nspurious VM_WARN messages.\n\nThis patch moves the pXd_present() checks out into the core code,\nrefactoring the callsites at the same time so that we avoid the complex\nconjunctions when determining whether or not we can put down a huge\nmapping.\n\nLink: http://lkml.kernel.org/r/1544120495-17438-2-git-send-email-will.deacon@arm.com\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nReviewed-by: Toshi Kani \u003ctoshi.kani@hpe.com\u003e\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Chintan Pandya \u003ccpandya@codeaurora.org\u003e\nCc: Toshi Kani \u003ctoshi.kani@hpe.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Sean Christopherson \u003csean.j.christopherson@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c16eb000ca03f8cdc2153bca6c977b6f898e6934",
      "tree": "1fdb9ea3b0755211088e17fbb0d8148c7236ef52",
      "parents": [
        "144552ff8995dd34d049a203d636b259ab751137"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "ktkhai@virtuozzo.com",
        "time": "Fri Dec 28 00:37:35 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "mm/filemap.c: remove useless check in pagecache_get_page()\n\npage always is not NULL, so we may remove this useless check.\n\nLink: http://lkml.kernel.org/r/154419752044.18559.2452963074922917720.stgit@localhost.localdomain\nSigned-off-by: Kirill Tkhai \u003cktkhai@virtuozzo.com\u003e\nAcked-by: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "144552ff8995dd34d049a203d636b259ab751137",
      "tree": "3e3ed4aa4afc2e22c12120be581e1846b864b4db",
      "parents": [
        "b6fb87b8e3ff1ef6bcf68470f24a97c984554d5a"
      ],
      "author": {
        "name": "Anthony Yznaga",
        "email": "anthony.yznaga@oracle.com",
        "time": "Fri Dec 28 00:37:31 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "/proc/kpagecount: return 0 for special pages that are never mapped\n\nCertain pages that are never mapped to userspace have a type indicated in\nthe page_type field of their struct pages (e.g.  PG_buddy).  page_type\noverlaps with _mapcount so set the count to 0 and avoid calling\npage_mapcount() for these pages.\n\n[anthony.yznaga@oracle.com: incorporate feedback from Matthew Wilcox]\n  Link: http://lkml.kernel.org/r/1544481313-27318-1-git-send-email-anthony.yznaga@oracle.com\nLink: http://lkml.kernel.org/r/1543963526-27917-1-git-send-email-anthony.yznaga@oracle.com\nSigned-off-by: Anthony Yznaga \u003canthony.yznaga@oracle.com\u003e\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Matthew Wilcox \u003cwilly@infradead.org\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Mike Rapoport \u003crppt@linux.vnet.ibm.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Alexander Duyck \u003calexander.h.duyck@linux.intel.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Miles Chen \u003cmiles.chen@mediatek.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6fb87b8e3ff1ef6bcf68470f24a97c984554d5a",
      "tree": "f4907a91dafc0fdb029a0a93341c5cb9cb14e5e3",
      "parents": [
        "bbe5d9939e81277bfbfb8fdba68374024b16d5fa"
      ],
      "author": {
        "name": "Anthony Yznaga",
        "email": "anthony.yznaga@oracle.com",
        "time": "Fri Dec 28 00:37:27 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:50 2018 -0800"
      },
      "message": "tools/vm/page-types.c: fix \"kpagecount returned fewer pages than expected\" failures\n\nBecause kpagecount_read() fakes success if map counts are not being\ncollected, clamp the page count passed to it by walk_pfn() to the pages\nvalue returned by the preceding call to kpageflags_read().\n\nLink: http://lkml.kernel.org/r/1543962269-26116-1-git-send-email-anthony.yznaga@oracle.com\nFixes: 7f1d23e60718 (\"tools/vm/page-types.c: include shared map counts\")\nSigned-off-by: Anthony Yznaga \u003canthony.yznaga@oracle.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Matthew Wilcox \u003cwilly@infradead.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbe5d9939e81277bfbfb8fdba68374024b16d5fa",
      "tree": "bc48bc97175fab2dd6c446bc7835d05b5595e1aa",
      "parents": [
        "3fa750dcf29e8606e3969d13d8e188cc1c0f511d"
      ],
      "author": {
        "name": "Oscar Salvador",
        "email": "osalvador@suse.de",
        "time": "Fri Dec 28 00:37:24 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "mm/page_alloc.c: drop uneeded __meminit and __meminitdata\n\nSince commit 03e85f9d5f1 (\"mm/page_alloc: Introduce\nfree_area_init_core_hotplug\"), some functions changed to only be called\nduring system initialization.  Concretly, free_area_init_node() and the\nfunctions that hang from it.\n\nAlso, some variables are no longer used after the system has gone\nthrough initialization.  So this could be considered as a late clean-up\nfor that patch.\n\nThis patch changes the functions from __meminit to __init, and the\nvariables from __meminitdata to __initdata.\n\nIn return, we get some KBs back:\n\nBefore:\n  Freeing unused kernel image memory: 2472K\n\nAfter:\n  Freeing unused kernel image memory: 2480K\n\nLink: http://lkml.kernel.org/r/20181204111507.4808-1-osalvador@suse.de\nSigned-off-by: Oscar Salvador \u003cosalvador@suse.de\u003e\nReviewed-by: Wei Yang \u003crichard.weiyang@gmail.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Pavel Tatashin \u003cpavel.tatashin@microsoft.com\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Alexander Duyck \u003calexander.h.duyck@linux.intel.com\u003e\nCc: David Hildenbrand \u003cdavid@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fa750dcf29e8606e3969d13d8e188cc1c0f511d",
      "tree": "d8fbf2cbb7f3d4d92e791fb2388db170afa0c83f",
      "parents": [
        "c3a5c77afefa697bf87f15272c7257e1574cad56"
      ],
      "author": {
        "name": "Brian Foster",
        "email": "bfoster@redhat.com",
        "time": "Fri Dec 28 00:37:20 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "mm/page-writeback.c: don\u0027t break integrity writeback on -\u003ewritepage() error\n\nwrite_cache_pages() is used in both background and integrity writeback\nscenarios by various filesystems.  Background writeback is mostly\nconcerned with cleaning a certain number of dirty pages based on various\nmm heuristics.  It may not write the full set of dirty pages or wait for\nI/O to complete.  Integrity writeback is responsible for persisting a set\nof dirty pages before the writeback job completes.  For example, an\nfsync() call must perform integrity writeback to ensure data is on disk\nbefore the call returns.\n\nwrite_cache_pages() unconditionally breaks out of its processing loop in\nthe event of a -\u003ewritepage() error.  This is fine for background\nwriteback, which had no strict requirements and will eventually come\naround again.  This can cause problems for integrity writeback on\nfilesystems that might need to clean up state associated with failed page\nwriteouts.  For example, XFS performs internal delayed allocation\naccounting before returning a -\u003ewritepage() error, where applicable.  If\nthe current writeback happens to be associated with an unmount and\nwrite_cache_pages() completes the writeback prematurely due to error, the\nfilesystem is unmounted in an inconsistent state if dirty+delalloc pages\nstill exist.\n\nTo handle this problem, update write_cache_pages() to always process the\nfull set of pages for integrity writeback regardless of -\u003ewritepage()\nerrors.  Save the first encountered error and return it to the caller once\ncomplete.  This facilitates XFS (or any other fs that expects integrity\nwriteback to process the entire set of dirty pages) to clean up its\ninternal state completely in the event of persistent mapping errors.\nBackground writeback continues to exit on the first error encountered.\n\n[akpm@linux-foundation.org: fix typo in comment]\nLink: http://lkml.kernel.org/r/20181116134304.32440-1-bfoster@redhat.com\nSigned-off-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3a5c77afefa697bf87f15272c7257e1574cad56",
      "tree": "396219f716654d56b9019f68f402e067337fb7db",
      "parents": [
        "0ecea993d0100e7409f8840b463a34fae42c9c32"
      ],
      "author": {
        "name": "Wei Yang",
        "email": "richard.weiyang@gmail.com",
        "time": "Fri Dec 28 00:37:16 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "lib/show_mem.c: drop pgdat_resize_lock in show_mem()\n\nFunction show_mem() is used to print system memory status when user\nrequires or fail to allocate memory.  Generally, this is a best effort\ninformation so any races with memory hotplug (or very theoretically an\nearly initialization) should be tolerable and the worst that could happen\nis to print an imprecise node state.\n\nDrop the resize lock because this is the only place which might hold the\nlock from the interrupt context and so all other callers might use a\nsimple spinlock.  Even though this doesn\u0027t solve any real issue it makes\nthe code easier to follow and tiny more effective.\n\nLink: http://lkml.kernel.org/r/20181129235532.9328-1-richard.weiyang@gmail.com\nSigned-off-by: Wei Yang \u003crichard.weiyang@gmail.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nReviewed-by: Oscar Salvador \u003cosalvador@suse.de\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ecea993d0100e7409f8840b463a34fae42c9c32",
      "tree": "f837da73b1411eb04cdcad940e6dbb7eaa349e2a",
      "parents": [
        "fa004ab7365ffa1e17e6b267d64798afccb94946"
      ],
      "author": {
        "name": "YueHaibing",
        "email": "yuehaibing@huawei.com",
        "time": "Fri Dec 28 00:37:13 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "mm/hmm.c: remove set but not used variable \u0027devmem\u0027\n\nFixes gcc \u0027-Wunused-but-set-variable\u0027 warning:\n\nmm/hmm.c: In function \u0027hmm_devmem_ref_kill\u0027:\nmm/hmm.c:995:21: warning:\n variable \u0027devmem\u0027 set but not used [-Wunused-but-set-variable]\n\nIt not used any more since 35d39f953d4e (\"mm, hmm: replace\nhmm_devmem_pages_create() with devm_memremap_pages()\")\n\nLink: http://lkml.kernel.org/r/1543629971-128377-1-git-send-email-yuehaibing@huawei.com\nSigned-off-by: YueHaibing \u003cyuehaibing@huawei.com\u003e\nReviewed-by: Reviewed-by: Jérôme Glisse \u003cjglisse@redhat.com\u003e\nReviewed-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa004ab7365ffa1e17e6b267d64798afccb94946",
      "tree": "a0b1c60eac4511b3c4813da3865f683e82eaa7c4",
      "parents": [
        "4e0d2e7ef14d9e1c900dac909db45263822b824f"
      ],
      "author": {
        "name": "Wei Yang",
        "email": "richard.weiyang@gmail.com",
        "time": "Fri Dec 28 00:37:10 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "mm, hotplug: move init_currently_empty_zone() under zone_span_lock protection\n\nDuring online_pages phase, pgdat-\u003enr_zones will be updated in case this\nzone is empty.\n\nCurrently the online_pages phase is protected by the global locks\n(device_device_hotplug_lock and mem_hotplug_lock), which ensures there is\nno contention during the update of nr_zones.\n\nThese global locks introduces scalability issues (especially the second\none), which slow down code relying on get_online_mems().  This is also a\npreparation for not having to rely on get_online_mems() but instead some\nmore fine grained locks.\n\nThe patch moves init_currently_empty_zone under both zone_span_writelock\nand pgdat_resize_lock because both the pgdat state is changed (nr_zones)\nand the zone\u0027s start_pfn.  Also this patch changes the documentation of\nnode_size_lock to include the protection of nr_zones.\n\nLink: http://lkml.kernel.org/r/20181203205016.14123-1-richard.weiyang@gmail.com\nSigned-off-by: Wei Yang \u003crichard.weiyang@gmail.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nReviewed-by: Oscar Salvador \u003cosalvador@suse.de\u003e\nCc: David Hildenbrand \u003cdavid@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e0d2e7ef14d9e1c900dac909db45263822b824f",
      "tree": "c4c0bde18e2a745fb13ef562dd864d2cef1f8dbc",
      "parents": [
        "83af658898cb292a32d8b6cd9b51266d7cfc4b6a"
      ],
      "author": {
        "name": "Wei Yang",
        "email": "richard.weiyang@gmail.com",
        "time": "Fri Dec 28 00:37:06 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "mm, sparse: pass nid instead of pgdat to sparse_add_one_section()\n\nSince the information needed in sparse_add_one_section() is node id to\nallocate proper memory, it is not necessary to pass its pgdat.\n\nThis patch changes the prototype of sparse_add_one_section() to pass node\nid directly.  This is intended to reduce misleading that\nsparse_add_one_section() would touch pgdat.\n\nLink: http://lkml.kernel.org/r/20181204085657.20472-2-richard.weiyang@gmail.com\nSigned-off-by: Wei Yang \u003crichard.weiyang@gmail.com\u003e\nReviewed-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nCc: Oscar Salvador \u003cosalvador@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "83af658898cb292a32d8b6cd9b51266d7cfc4b6a",
      "tree": "7a6c4daecefff22c007fb1326f10737a17920eb2",
      "parents": [
        "9e247bab0668a5893b3efa131cec5b5859467834"
      ],
      "author": {
        "name": "Wei Yang",
        "email": "richard.weiyang@gmail.com",
        "time": "Fri Dec 28 00:37:02 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "mm, sparse: drop pgdat_resize_lock in sparse_add/remove_one_section()\n\npgdat_resize_lock is used to protect pgdat\u0027s memory region information\nlike: node_start_pfn, node_present_pages, etc.  While in function\nsparse_add/remove_one_section(), pgdat_resize_lock is used to protect\ninitialization/release of one mem_section.  This looks not proper.\n\nThese code paths are currently protected by mem_hotplug_lock currently but\nshould there ever be any reason for locking at the sparse layer a\ndedicated lock should be introduced.\n\nFollowing is the current call trace of sparse_add/remove_one_section()\n\n    mem_hotplug_begin()\n    arch_add_memory()\n       add_pages()\n           __add_pages()\n               __add_section()\n                   sparse_add_one_section()\n    mem_hotplug_done()\n\n    mem_hotplug_begin()\n    arch_remove_memory()\n        __remove_pages()\n            __remove_section()\n                sparse_remove_one_section()\n    mem_hotplug_done()\n\nThe comment above the pgdat_resize_lock also mentions \"Holding this will\nalso guarantee that any pfn_valid() stays that way.\", which is true with\nthe current implementation and false after this patch.  But current\nimplementation doesn\u0027t meet this comment.  There isn\u0027t any pfn walkers to\ntake the lock so this looks like a relict from the past.  This patch also\nremoves this comment.\n\n[richard.weiyang@gmail.com: v4]\n  Link: http://lkml.kernel.org/r/20181204085657.20472-1-richard.weiyang@gmail.com\n[mhocko@suse.com: changelog suggestion]\nLink: http://lkml.kernel.org/r/20181128091243.19249-1-richard.weiyang@gmail.com\nSigned-off-by: Wei Yang \u003crichard.weiyang@gmail.com\u003e\nReviewed-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nCc: Oscar Salvador \u003cosalvador@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e247bab0668a5893b3efa131cec5b5859467834",
      "tree": "03d30db4f6d4a35dd759055a487a8bc0bfac4b51",
      "parents": [
        "bb416d18b850faaa44bd3bb67c9728922c3cce98"
      ],
      "author": {
        "name": "Yu Zhao",
        "email": "yuzhao@google.com",
        "time": "Fri Dec 28 00:36:58 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "mm: remove pte_lock_deinit()\n\nPagetable page doesn\u0027t touch page-\u003emapping or have any used field that\noverlaps with it.  No need to clear mapping in dtor.  In fact, doing so\nmight mask problems that otherwise would be detected by bad_page().\n\nLink: http://lkml.kernel.org/r/20181128235525.58780-1-yuzhao@google.com\nSigned-off-by: Yu Zhao \u003cyuzhao@google.com\u003e\nReviewed-by: Matthew Wilcox \u003cwilly@infradead.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: \"Kirill A . Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Pavel Tatashin \u003cpasha.tatashin@oracle.com\u003e\nCc: Souptick Joarder \u003cjrdr.linux@gmail.com\u003e\nCc: Logan Gunthorpe \u003clogang@deltatee.com\u003e\nCc: Keith Busch \u003ckeith.busch@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb416d18b850faaa44bd3bb67c9728922c3cce98",
      "tree": "112f74c2842e9e2565911546cb0ff69c407ad393",
      "parents": [
        "23eddf39b2c28c05cb8f8203d38e61807d701b38"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Fri Dec 28 00:36:54 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "zram: writeback throttle\n\nIf there are lots of write IO with flash device, it could have a\nwearout problem of storage. To overcome the problem, admin needs\nto design write limitation to guarantee flash health\nfor entire product life.\n\nThis patch creates a new knob \"writeback_limit\" for zram.\n\nwriteback_limit\u0027s default value is 0 so that it doesn\u0027t limit\nany writeback. If admin want to measure writeback count in a\ncertain period, he could know it via /sys/block/zram0/bd_stat\u0027s\n3rd column.\n\nIf admin want to limit writeback as per-day 400M, he could do it\nlike below.\n\n\tMB_SHIFT\u003d20\n\t4K_SHIFT\u003d12\n\techo $((400\u003c\u003cMB_SHIFT\u003e\u003e4K_SHIFT)) \u003e \\\n\t\t/sys/block/zram0/writeback_limit.\n\nIf admin want to allow further write again, he could do it like below\n\n\techo 0 \u003e /sys/block/zram0/writeback_limit\n\nIf admin want to see remaining writeback budget,\n\n\tcat /sys/block/zram0/writeback_limit\n\nThe writeback_limit count will reset whenever you reset zram (e.g., system\nreboot, echo 1 \u003e /sys/block/zramX/reset) so keeping how many of writeback\nhappened until you reset the zram to allocate extra writeback budget in\nnext setting is user\u0027s job.\n\n[minchan@kernel.org: v4]\n  Link: http://lkml.kernel.org/r/20181203024045.153534-8-minchan@kernel.org\nLink: http://lkml.kernel.org/r/20181127055429.251614-8-minchan@kernel.org\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nReviewed-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Joey Pabalinas \u003cjoeypabalinas@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "23eddf39b2c28c05cb8f8203d38e61807d701b38",
      "tree": "30ec9421877d6171486386bb32122e7a077480bb",
      "parents": [
        "a939888ec38bf1f33e4a903056677e92a4844244"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Fri Dec 28 00:36:51 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "zram: add bd_stat statistics\n\nbd_stat represents things that happened in the backing device.  Currently\nit supports bd_counts, bd_reads and bd_writes which are helpful to\nunderstand wearout of flash and memory saving.\n\n[minchan@kernel.org: v4]\n  Link: http://lkml.kernel.org/r/20181203024045.153534-7-minchan@kernel.org\nLink: http://lkml.kernel.org/r/20181127055429.251614-7-minchan@kernel.org\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nReviewed-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Joey Pabalinas \u003cjoeypabalinas@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a939888ec38bf1f33e4a903056677e92a4844244",
      "tree": "c1895d12365563d62ad0f9906a8ab5f6ed2f0cf7",
      "parents": [
        "e82592c4fd7eafe8dec12a70436e93e3afb28556"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Fri Dec 28 00:36:47 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "zram: support idle/huge page writeback\n\nAdd a new feature \"zram idle/huge page writeback\".  In the zram-swap use\ncase, zram usually has many idle/huge swap pages.  It\u0027s pointless to keep\nthem in memory (ie, zram).\n\nTo solve this problem, this feature introduces idle/huge page writeback to\nthe backing device so the goal is to save more memory space on embedded\nsystems.\n\nNormal sequence to use idle/huge page writeback feature is as follows,\n\nwhile (1) {\n        # mark allocated zram slot to idle\n        echo all \u003e /sys/block/zram0/idle\n        # leave system working for several hours\n        # Unless there is no access for some blocks on zram,\n\t# they are still IDLE marked pages.\n\n        echo \"idle\" \u003e /sys/block/zram0/writeback\n\tor/and\n\techo \"huge\" \u003e /sys/block/zram0/writeback\n        # write the IDLE or/and huge marked slot into backing device\n\t# and free the memory.\n}\n\nPer the discussion at\nhttps://lore.kernel.org/lkml/20181122065926.GG3441@jagdpanzerIV/T/#u,\n\nThis patch removes direct incommpressibe page writeback feature\n(d2afd25114f4 (\"zram: write incompressible pages to backing device\")).\n\nBelow concerns from Sergey:\n\u003d\u003d \u0026\u003c \u003d\u003d\n\n\"IDLE writeback\" is superior to \"incompressible writeback\".\n\n\"incompressible writeback\" is completely unpredictable and uncontrollable;\nit depens on data patterns and compression algorithms.  While \"IDLE\nwriteback\" is predictable.\n\nI even suspect, that, *ideally*, we can remove \"incompressible writeback\".\n\"IDLE pages\" is a super set which also includes \"incompressible\" pages.\nSo, technically, we still can do \"incompressible writeback\" from \"IDLE\nwriteback\" path; but a much more reasonable one, based on a page idling\nperiod.\n\nI understand that you want to keep \"direct incompressible writeback\"\naround.  ZRAM is especially popular on devices which do suffer from flash\nwearout, so I can see \"incompressible writeback\" path becoming a dead\ncode, long term.\n\n\u003d\u003d \u0026\u003c \u003d\u003d\n\nBelow concerns from Minchan:\n\u003d\u003d \u0026\u003c \u003d\u003d\n\nMy concern is if we enable CONFIG_ZRAM_WRITEBACK in this implementation,\nboth hugepage/idlepage writeck will turn on.  However someuser want to\nenable only idlepage writeback so we need to introduce turn on/off knob\nfor hugepage or new CONFIG_ZRAM_IDLEPAGE_WRITEBACK for those usecase.  I\ndon\u0027t want to make it complicated *if possible*.\n\nLong term, I imagine we need to make VM aware of new swap hierarchy a\nlittle bit different with as-is.  For example, first high priority swap\ncan return -EIO or -ENOCOMP, swap try to fallback to next lower priority\nswap device.  With that, hugepage writeback will work tranparently.\n\nSo we could regard it as regression because incompressible pages doesn\u0027t\ngo to backing storage automatically.  Instead, user should do it via \"echo\nhuge\" \u003e /sys/block/zram/writeback\" manually.\n\n\u003d\u003d \u0026\u003c \u003d\u003d\n\nLink: http://lkml.kernel.org/r/20181127055429.251614-6-minchan@kernel.org\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nReviewed-by: Joey Pabalinas \u003cjoeypabalinas@gmail.com\u003e\nReviewed-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e82592c4fd7eafe8dec12a70436e93e3afb28556",
      "tree": "89d470bbfcb0f97e7f3ed3f1516d038403992078",
      "parents": [
        "7e5292831b346bacb05558ca385cae366187314c"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Fri Dec 28 00:36:44 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "zram: introduce ZRAM_IDLE flag\n\nTo support idle page writeback with upcoming patches, this patch\nintroduces a new ZRAM_IDLE flag.\n\nUserspace can mark zram slots as \"idle\" via\n\t\"echo all \u003e /sys/block/zramX/idle\"\nwhich marks every allocated zram slot as ZRAM_IDLE.\nUser could see it by /sys/kernel/debug/zram/zram0/block_state.\n\n          300    75.033841 ...i\n          301    63.806904 s..i\n          302    63.806919 ..hi\n\nOnce there is IO for the slot, the mark will be disappeared.\n\n\t  300    75.033841 ...\n          301    63.806904 s..i\n          302    63.806919 ..hi\n\nTherefore, 300th block is idle zpage. With this feature,\nuser can how many zram has idle pages which are waste of memory.\n\nLink: http://lkml.kernel.org/r/20181127055429.251614-5-minchan@kernel.org\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nReviewed-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReviewed-by: Joey Pabalinas \u003cjoeypabalinas@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e5292831b346bacb05558ca385cae366187314c",
      "tree": "8326a73a602de333c95f221b26b9b4b3dd430433",
      "parents": [
        "5547932dc67a48713eece4fa4703bfdf0cfcb818"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Fri Dec 28 00:36:40 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "zram: refactor flags and writeback stuff\n\nRename some variables and restructure some code for better readability in\nwriteback and zs_free_page.\n\nLink: http://lkml.kernel.org/r/20181127055429.251614-4-minchan@kernel.org\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nReviewed-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReviewed-by: Joey Pabalinas \u003cjoeypabalinas@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5547932dc67a48713eece4fa4703bfdf0cfcb818",
      "tree": "958e028f5eb44a3b7db8e8cd20b8bce848375422",
      "parents": [
        "3c9959e025472122a61faebb208525cf26b305d1"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Fri Dec 28 00:36:37 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "zram: fix double free backing device\n\nIf blkdev_get fails, we shouldn\u0027t do blkdev_put.  Otherwise, kernel emits\nbelow log.  This patch fixes it.\n\n  WARNING: CPU: 0 PID: 1893 at fs/block_dev.c:1828 blkdev_put+0x105/0x120\n  Modules linked in:\n  CPU: 0 PID: 1893 Comm: swapoff Not tainted 4.19.0+ #453\n  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014\n  RIP: 0010:blkdev_put+0x105/0x120\n  Call Trace:\n    __x64_sys_swapoff+0x46d/0x490\n    do_syscall_64+0x5a/0x190\n    entry_SYSCALL_64_after_hwframe+0x49/0xbe\n  irq event stamp: 4466\n  hardirqs last  enabled at (4465):  __free_pages_ok+0x1e3/0x490\n  hardirqs last disabled at (4466):  trace_hardirqs_off_thunk+0x1a/0x1c\n  softirqs last  enabled at (3420):  __do_softirq+0x333/0x446\n  softirqs last disabled at (3407):  irq_exit+0xd1/0xe0\n\nLink: http://lkml.kernel.org/r/20181127055429.251614-3-minchan@kernel.org\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nReviewed-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReviewed-by: Joey Pabalinas \u003cjoeypabalinas@gmail.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t[4.14+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c9959e025472122a61faebb208525cf26b305d1",
      "tree": "899b7879fec008e1f7b4a605ef4cbfc22c377137",
      "parents": [
        "fed84c78527009d4f799a3ed9a566502fa026d82"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Fri Dec 28 00:36:33 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "zram: fix lockdep warning of free block handling\n\nPatch series \"zram idle page writeback\", v3.\n\nInherently, swap device has many idle pages which are rare touched since\nit was allocated.  It is never problem if we use storage device as swap.\nHowever, it\u0027s just waste for zram-swap.\n\nThis patchset supports zram idle page writeback feature.\n\n* Admin can define what is idle page \"no access since X time ago\"\n* Admin can define when zram should writeback them\n* Admin can define when zram should stop writeback to prevent wearout\n\nDetails are in each patch\u0027s description.\n\nThis patch (of 7):\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  WARNING: inconsistent lock state\n  4.19.0+ #390 Not tainted\n  --------------------------------\n  inconsistent {SOFTIRQ-ON-W} -\u003e {IN-SOFTIRQ-W} usage.\n  zram_verify/2095 [HC0[0]:SC1[1]:HE1:SE0] takes:\n  00000000b1828693 (\u0026(\u0026zram-\u003ebitmap_lock)-\u003erlock){+.?.}, at: put_entry_bdev+0x1e/0x50\n  {SOFTIRQ-ON-W} state was registered at:\n    _raw_spin_lock+0x2c/0x40\n    zram_make_request+0x755/0xdc9\n    generic_make_request+0x373/0x6a0\n    submit_bio+0x6c/0x140\n    __swap_writepage+0x3a8/0x480\n    shrink_page_list+0x1102/0x1a60\n    shrink_inactive_list+0x21b/0x3f0\n    shrink_node_memcg.constprop.99+0x4f8/0x7e0\n    shrink_node+0x7d/0x2f0\n    do_try_to_free_pages+0xe0/0x300\n    try_to_free_pages+0x116/0x2b0\n    __alloc_pages_slowpath+0x3f4/0xf80\n    __alloc_pages_nodemask+0x2a2/0x2f0\n    __handle_mm_fault+0x42e/0xb50\n    handle_mm_fault+0x55/0xb0\n    __do_page_fault+0x235/0x4b0\n    page_fault+0x1e/0x30\n  irq event stamp: 228412\n  hardirqs last  enabled at (228412): [\u003cffffffff98245846\u003e] __slab_free+0x3e6/0x600\n  hardirqs last disabled at (228411): [\u003cffffffff98245625\u003e] __slab_free+0x1c5/0x600\n  softirqs last  enabled at (228396): [\u003cffffffff98e0031e\u003e] __do_softirq+0x31e/0x427\n  softirqs last disabled at (228403): [\u003cffffffff98072051\u003e] irq_exit+0xd1/0xe0\n\n  other info that might help us debug this:\n   Possible unsafe locking scenario:\n\n         CPU0\n         ----\n    lock(\u0026(\u0026zram-\u003ebitmap_lock)-\u003erlock);\n    \u003cInterrupt\u003e\n      lock(\u0026(\u0026zram-\u003ebitmap_lock)-\u003erlock);\n\n   *** DEADLOCK ***\n\n  no locks held by zram_verify/2095.\n\n  stack backtrace:\n  CPU: 5 PID: 2095 Comm: zram_verify Not tainted 4.19.0+ #390\n  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014\n  Call Trace:\n   \u003cIRQ\u003e\n   dump_stack+0x67/0x9b\n   print_usage_bug+0x1bd/0x1d3\n   mark_lock+0x4aa/0x540\n   __lock_acquire+0x51d/0x1300\n   lock_acquire+0x90/0x180\n   _raw_spin_lock+0x2c/0x40\n   put_entry_bdev+0x1e/0x50\n   zram_free_page+0xf6/0x110\n   zram_slot_free_notify+0x42/0xa0\n   end_swap_bio_read+0x5b/0x170\n   blk_update_request+0x8f/0x340\n   scsi_end_request+0x2c/0x1e0\n   scsi_io_completion+0x98/0x650\n   blk_done_softirq+0x9e/0xd0\n   __do_softirq+0xcc/0x427\n   irq_exit+0xd1/0xe0\n   do_IRQ+0x93/0x120\n   common_interrupt+0xf/0xf\n   \u003c/IRQ\u003e\n\nWith writeback feature, zram_slot_free_notify could be called in softirq\ncontext by end_swap_bio_read.  However, bitmap_lock is not aware of that\nso lockdep yell out:\n\n  get_entry_bdev\n  spin_lock(bitmap-\u003elock);\n  irq\n  softirq\n  end_swap_bio_read\n  zram_slot_free_notify\n  zram_slot_lock \u003c-- deadlock prone\n  zram_free_page\n  put_entry_bdev\n  spin_lock(bitmap-\u003elock); \u003c-- deadlock prone\n\nWith akpm\u0027s suggestion (i.e.  bitmap operation is already atomic), we\ncould remove bitmap lock.  It might fail to find a empty slot if serious\ncontention happens.  However, it\u0027s not severe problem because huge page\nwriteback has already possiblity to fail if there is severe memory\npressure.  Worst case is just keeping the incompressible in memory, not\nstorage.\n\nThe other problem is zram_slot_lock in zram_slot_slot_free_notify.  To\nmake it safe is this patch introduces zram_slot_trylock where\nzram_slot_free_notify uses it.  Although it\u0027s rare to be contented, this\npatch adds new debug stat \"miss_free\" to keep monitoring how often it\nhappens.\n\nLink: http://lkml.kernel.org/r/20181127055429.251614-2-minchan@kernel.org\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nReviewed-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReviewed-by: Joey Pabalinas \u003cjoeypabalinas@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fed84c78527009d4f799a3ed9a566502fa026d82",
      "tree": "dafd4dfb1c41319e044728c6825fc7c65c5d52d6",
      "parents": [
        "65c78784135f847e49eb98e6b976e453e71100c3"
      ],
      "author": {
        "name": "Qian Cai",
        "email": "cai@gmx.us",
        "time": "Fri Dec 28 00:36:29 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "mm/memblock.c: skip kmemleak for kasan_init()\n\nKmemleak does not play well with KASAN (tested on both HPE Apollo 70 and\nHuawei TaiShan 2280 aarch64 servers).\n\nAfter calling start_kernel()-\u003esetup_arch()-\u003ekasan_init(), kmemleak early\nlog buffer went from something like 280 to 260000 which caused kmemleak\ndisabled and crash dump memory reservation failed.  The multitude of\nkmemleak_alloc() calls is from nested loops while KASAN is setting up full\nmemory mappings, so let early kmemleak allocations skip those\nmemblock_alloc_internal() calls came from kasan_init() given that those\nearly KASAN memory mappings should not reference to other memory.  Hence,\nno kmemleak false positives.\n\nkasan_init\n  kasan_map_populate [1]\n    kasan_pgd_populate [2]\n      kasan_pud_populate [3]\n        kasan_pmd_populate [4]\n          kasan_pte_populate [5]\n            kasan_alloc_zeroed_page\n              memblock_alloc_try_nid\n                memblock_alloc_internal\n                  kmemleak_alloc\n\n[1] for_each_memblock(memory, reg)\n[2] while (pgdp++, addr \u003d next, addr !\u003d end)\n[3] while (pudp++, addr \u003d next, addr !\u003d end \u0026\u0026 pud_none(READ_ONCE(*pudp)))\n[4] while (pmdp++, addr \u003d next, addr !\u003d end \u0026\u0026 pmd_none(READ_ONCE(*pmdp)))\n[5] while (ptep++, addr \u003d next, addr !\u003d end \u0026\u0026 pte_none(READ_ONCE(*ptep)))\n\nLink: http://lkml.kernel.org/r/1543442925-17794-1-git-send-email-cai@gmx.us\nSigned-off-by: Qian Cai \u003ccai@gmx.us\u003e\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Mike Rapoport \u003crppt@linux.vnet.ibm.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "65c78784135f847e49eb98e6b976e453e71100c3",
      "tree": "0e91b39c565f269bd58b50cd5b0c9d9b9ead1846",
      "parents": [
        "2c2a5af6fed20cf74401c9d64319c76c5ff81309"
      ],
      "author": {
        "name": "Oscar Salvador",
        "email": "osalvador@suse.de",
        "time": "Fri Dec 28 00:36:26 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "kernel, resource: check for IORESOURCE_SYSRAM in release_mem_region_adjustable\n\nThis is a preparation for the next patch.\n\nCurrently, we only call release_mem_region_adjustable() in __remove_pages\nif the zone is not ZONE_DEVICE, because resources that belong to HMM/devm\nare being released by themselves with devm_release_mem_region.\n\nSince we do not want to touch any zone/page stuff during the removing of\nthe memory (but during the offlining), we do not want to check for the\nzone here.  So we need another way to tell release_mem_region_adjustable()\nto not realease the resource in case it belongs to HMM/devm.\n\nHMM/devm acquires/releases a resource through\ndevm_request_mem_region/devm_release_mem_region.\n\nThese resources have the flag IORESOURCE_MEM, while resources acquired by\nhot-add memory path (register_memory_resource()) contain\nIORESOURCE_SYSTEM_RAM.\n\nSo, we can check for this flag in release_mem_region_adjustable, and if\nthe resource does not contain such flag, we know that we are dealing with\na HMM/devm resource, so we can back off.\n\nLink: http://lkml.kernel.org/r/20181127162005.15833-3-osalvador@suse.de\nSigned-off-by: Oscar Salvador \u003cosalvador@suse.de\u003e\nReviewed-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nReviewed-by: Pavel Tatashin \u003cpasha.tatashin@soleen.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Jerome Glisse \u003cjglisse@redhat.com\u003e\nCc: Jonathan Cameron \u003cJonathan.Cameron@huawei.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Oscar Salvador \u003cosalvador@suse.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crafael@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c2a5af6fed20cf74401c9d64319c76c5ff81309",
      "tree": "54c8a6655f28b4e9234b2a720ee316634182b9cf",
      "parents": [
        "23b68cfaae0ea40a9509fad37b756a6916dec54e"
      ],
      "author": {
        "name": "Oscar Salvador",
        "email": "osalvador@suse.com",
        "time": "Fri Dec 28 00:36:22 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "mm, memory_hotplug: add nid parameter to arch_remove_memory\n\nPatch series \"Do not touch pages in hot-remove path\", v2.\n\nThis patchset aims for two things:\n\n 1) A better definition about offline and hot-remove stage\n 2) Solving bugs where we can access non-initialized pages\n    during hot-remove operations [2] [3].\n\nThis is achieved by moving all page/zone handling to the offline\nstage, so we do not need to access pages when hot-removing memory.\n\n[1] https://patchwork.kernel.org/cover/10691415/\n[2] https://patchwork.kernel.org/patch/10547445/\n[3] https://www.spinics.net/lists/linux-mm/msg161316.html\n\nThis patch (of 5):\n\nThis is a preparation for the following-up patches.  The idea of passing\nthe nid is that it will allow us to get rid of the zone parameter\nafterwards.\n\nLink: http://lkml.kernel.org/r/20181127162005.15833-2-osalvador@suse.de\nSigned-off-by: Oscar Salvador \u003cosalvador@suse.de\u003e\nReviewed-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nReviewed-by: Pavel Tatashin \u003cpasha.tatashin@soleen.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Jerome Glisse \u003cjglisse@redhat.com\u003e\nCc: Jonathan Cameron \u003cJonathan.Cameron@huawei.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crafael@kernel.org\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "23b68cfaae0ea40a9509fad37b756a6916dec54e",
      "tree": "164b7b8e89281a52b32b81d90332c24b85d95c78",
      "parents": [
        "9a1ea439b16b92002e0a6fceebc5d1794906e297"
      ],
      "author": {
        "name": "Wei Yang",
        "email": "richard.weiyang@gmail.com",
        "time": "Fri Dec 28 00:36:18 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:49 2018 -0800"
      },
      "message": "mm: check nr_initialised with PAGES_PER_SECTION directly in defer_init()\n\nWhen DEFERRED_STRUCT_PAGE_INIT is configured, only the first section of\neach node\u0027s highest zone is initialized before defer stage.\n\nstatic_init_pgcnt is used to store the number of pages like this:\n\n    pgdat-\u003estatic_init_pgcnt \u003d min_t(unsigned long, PAGES_PER_SECTION,\n                                              pgdat-\u003enode_spanned_pages);\n\nbecause we don\u0027t want to overflow zone\u0027s range.\n\nBut this is not necessary, since defer_init() is called like this:\n\n  memmap_init_zone()\n    for pfn in [start_pfn, end_pfn)\n      defer_init(pfn, end_pfn)\n\nIn case (pgdat-\u003enode_spanned_pages \u003c PAGES_PER_SECTION), the loop would\nstop before calling defer_init().\n\nBTW, comparing PAGES_PER_SECTION with node_spanned_pages is not correct,\nsince nr_initialised is zone based instead of node based.  Even\nnode_spanned_pages is bigger than PAGES_PER_SECTION, its highest zone\nwould have pages less than PAGES_PER_SECTION.\n\nLink: http://lkml.kernel.org/r/20181122094807.6985-1-richard.weiyang@gmail.com\nSigned-off-by: Wei Yang \u003crichard.weiyang@gmail.com\u003e\nReviewed-by: Alexander Duyck \u003calexander.h.duyck@linux.intel.com\u003e\nCc: Pavel Tatashin \u003cpasha.tatashin@oracle.com\u003e\nCc: Oscar Salvador \u003cosalvador@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a1ea439b16b92002e0a6fceebc5d1794906e297",
      "tree": "101e06903ff748d910d5735066362c2c533b0a1e",
      "parents": [
        "f0c867d9588d9efc10d6a55009c9560336673369"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Fri Dec 28 00:36:14 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:48 2018 -0800"
      },
      "message": "mm: put_and_wait_on_page_locked() while page is migrated\n\nWaiting on a page migration entry has used wait_on_page_locked() all along\nsince 2006: but you cannot safely wait_on_page_locked() without holding a\nreference to the page, and that extra reference is enough to make\nmigrate_page_move_mapping() fail with -EAGAIN, when a racing task faults\non the entry before migrate_page_move_mapping() gets there.\n\nAnd that failure is retried nine times, amplifying the pain when trying to\nmigrate a popular page.  With a single persistent faulter, migration\nsometimes succeeds; with two or three concurrent faulters, success becomes\nmuch less likely (and the more the page was mapped, the worse the overhead\nof unmapping and remapping it on each try).\n\nThis is especially a problem for memory offlining, where the outer level\nretries forever (or until terminated from userspace), because a heavy\nrefault workload can trigger an endless loop of migration failures.\nwait_on_page_locked() is the wrong tool for the job.\n\nDavid Herrmann (but was he the first?) noticed this issue in 2014:\nhttps://marc.info/?l\u003dlinux-mm\u0026m\u003d140110465608116\u0026w\u003d2\n\nTim Chen started a thread in August 2017 which appears relevant:\nhttps://marc.info/?l\u003dlinux-mm\u0026m\u003d150275941014915\u0026w\u003d2 where Kan Liang went\non to implicate __migration_entry_wait():\nhttps://marc.info/?l\u003dlinux-mm\u0026m\u003d150300268411980\u0026w\u003d2 and the thread ended\nup with the v4.14 commits: 2554db916586 (\"sched/wait: Break up long wake\nlist walk\") 11a19c7b099f (\"sched/wait: Introduce wakeup boomark in\nwake_up_page_bit\")\n\nBaoquan He reported \"Memory hotplug softlock issue\" 14 November 2018:\nhttps://marc.info/?l\u003dlinux-mm\u0026m\u003d154217936431300\u0026w\u003d2\n\nWe have all assumed that it is essential to hold a page reference while\nwaiting on a page lock: partly to guarantee that there is still a struct\npage when MEMORY_HOTREMOVE is configured, but also to protect against\nreuse of the struct page going to someone who then holds the page locked\nindefinitely, when the waiter can reasonably expect timely unlocking.\n\nBut in fact, so long as wait_on_page_bit_common() does the put_page(), and\nis careful not to rely on struct page contents thereafter, there is no\nneed to hold a reference to the page while waiting on it.  That does mean\nthat this case cannot go back through the loop: but that\u0027s fine for the\npage migration case, and even if used more widely, is limited by the \"Stop\nwalking if it\u0027s locked\" optimization in wake_page_function().\n\nAdd interface put_and_wait_on_page_locked() to do this, using \"behavior\"\nenum in place of \"lock\" arg to wait_on_page_bit_common() to implement it.\nNo interruptible or killable variant needed yet, but they might follow: I\nhave a vague notion that reporting -EINTR should take precedence over\nreturn from wait_on_page_bit_common() without knowing the page state, so\narrange it accordingly - but that may be nothing but pedantic.\n\n__migration_entry_wait() still has to take a brief reference to the page,\nprior to calling put_and_wait_on_page_locked(): but now that it is dropped\nbefore waiting, the chance of impeding page migration is very much\nreduced.  Should we perhaps disable preemption across this?\n\nshrink_page_list()\u0027s __ClearPageLocked(): that was a surprise!  This\nsurvived a lot of testing before that showed up.  PageWaiters may have\nbeen set by wait_on_page_bit_common(), and the reference dropped, just\nbefore shrink_page_list() succeeds in freezing its last page reference: in\nsuch a case, unlock_page() must be used.  Follow the suggestion from\nMichal Hocko, just revert a978d6f52106 (\"mm: unlockless reclaim\") now:\nthat optimization predates PageWaiters, and won\u0027t buy much these days; but\nwe can reinstate it for the !PageWaiters case if anyone notices.\n\nIt does raise the question: should vmscan.c\u0027s is_page_cache_freeable() and\n__remove_mapping() now treat a PageWaiters page as if an extra reference\nwere held?  Perhaps, but I don\u0027t think it matters much, since\nshrink_page_list() already had to win its trylock_page(), so waiters are\nnot very common there: I noticed no difference when trying the bigger\nchange, and it\u0027s surely not needed while put_and_wait_on_page_locked() is\nonly used for page migration.\n\n[willy@infradead.org: add put_and_wait_on_page_locked() kerneldoc]\nLink: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261121330.1116@eggly.anvils\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReported-by: Baoquan He \u003cbhe@redhat.com\u003e\nTested-by: Baoquan He \u003cbhe@redhat.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Matthew Wilcox \u003cwilly@infradead.org\u003e\nCc: Baoquan He \u003cbhe@redhat.com\u003e\nCc: David Hildenbrand \u003cdavid@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nCc: David Herrmann \u003cdh.herrmann@gmail.com\u003e\nCc: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nCc: Kan Liang \u003ckan.liang@intel.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Nick Piggin \u003cnpiggin@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0c867d9588d9efc10d6a55009c9560336673369",
      "tree": "98a2b274588ae76ea8ef6f4428ee71a2f0fe611f",
      "parents": [
        "ef8444ea01d7442652f8e1b8a8b94278cb57eafd"
      ],
      "author": {
        "name": "yuzhoujian",
        "email": "yuzhoujian@didichuxing.com",
        "time": "Fri Dec 28 00:36:10 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:48 2018 -0800"
      },
      "message": "mm, oom: add oom victim\u0027s memcg to the oom context information\n\nThe current oom report doesn\u0027t display victim\u0027s memcg context during the\nglobal OOM situation.  While this information is not strictly needed, it\ncan be really helpful for containerized environments to locate which\ncontainer has lost a process.  Now that we have a single line for the oom\ncontext, we can trivially add both the oom memcg (this can be either\nglobal_oom or a specific memcg which hits its hard limits) and task_memcg\nwhich is the victim\u0027s memcg.\n\nBelow is the single line output in the oom report after this patch.\n\n- global oom context information:\n\noom-kill:constraint\u003d\u003cconstraint\u003e,nodemask\u003d\u003cnodemask\u003e,cpuset\u003d\u003ccpuset\u003e,mems_allowed\u003d\u003cmems_allowed\u003e,global_oom,task_memcg\u003d\u003cmemcg\u003e,task\u003d\u003ccomm\u003e,pid\u003d\u003cpid\u003e,uid\u003d\u003cuid\u003e\n\n- memcg oom context information:\n\noom-kill:constraint\u003d\u003cconstraint\u003e,nodemask\u003d\u003cnodemask\u003e,cpuset\u003d\u003ccpuset\u003e,mems_allowed\u003d\u003cmems_allowed\u003e,oom_memcg\u003d\u003cmemcg\u003e,task_memcg\u003d\u003cmemcg\u003e,task\u003d\u003ccomm\u003e,pid\u003d\u003cpid\u003e,uid\u003d\u003cuid\u003e\n\n[penguin-kernel@I-love.SAKURA.ne.jp: use pr_cont() in mem_cgroup_print_oom_context()]\n  Link: http://lkml.kernel.org/r/201812190723.wBJ7NdkN032628@www262.sakura.ne.jp\nLink: http://lkml.kernel.org/r/1542799799-36184-2-git-send-email-ufo19890607@gmail.com\nSigned-off-by: yuzhoujian \u003cyuzhoujian@didichuxing.com\u003e\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: \"Kirill A . Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nCc: Roman Gushchin \u003cguro@fb.com\u003e\nCc: Yang Shi \u003cyang.s@alibaba-inc.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef8444ea01d7442652f8e1b8a8b94278cb57eafd",
      "tree": "fed8946dab9f5025cc285b1b8fae27d605c86a03",
      "parents": [
        "e5cb113f2dbc8125f31005faebab161a2a84ebe6"
      ],
      "author": {
        "name": "yuzhoujian",
        "email": "yuzhoujian@didichuxing.com",
        "time": "Fri Dec 28 00:36:07 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:48 2018 -0800"
      },
      "message": "mm, oom: reorganize the oom report in dump_header\n\nOOM report contains several sections.  The first one is the allocation\ncontext that has triggered the OOM.  Then we have cpuset context followed\nby the stack trace of the OOM path.  The tird one is the OOM memory\ninformation.  Followed by the current memory state of all system tasks.\nAt last, we will show oom eligible tasks and the information about the\nchosen oom victim.\n\nOne thing that makes parsing more awkward than necessary is that we do not\nhave a single and easily parsable line about the oom context.  This patch\nis reorganizing the oom report to\n\n1) who invoked oom and what was the allocation request\n\n[  515.902945] tuned invoked oom-killer: gfp_mask\u003d0x6200ca(GFP_HIGHUSER_MOVABLE), order\u003d0, oom_score_adj\u003d0\n\n2) OOM stack trace\n\n[  515.904273] CPU: 24 PID: 1809 Comm: tuned Not tainted 4.20.0-rc3+ #3\n[  515.905518] Hardware name: Inspur SA5212M4/YZMB-00370-107, BIOS 4.1.10 11/14/2016\n[  515.906821] Call Trace:\n[  515.908062]  dump_stack+0x5a/0x73\n[  515.909311]  dump_header+0x55/0x28c\n[  515.914260]  oom_kill_process+0x2d8/0x300\n[  515.916708]  out_of_memory+0x145/0x4a0\n[  515.917932]  __alloc_pages_slowpath+0x7d2/0xa16\n[  515.919157]  __alloc_pages_nodemask+0x277/0x290\n[  515.920367]  filemap_fault+0x3d0/0x6c0\n[  515.921529]  ? filemap_map_pages+0x2b8/0x420\n[  515.922709]  ext4_filemap_fault+0x2c/0x40 [ext4]\n[  515.923884]  __do_fault+0x20/0x80\n[  515.925032]  __handle_mm_fault+0xbc0/0xe80\n[  515.926195]  handle_mm_fault+0xfa/0x210\n[  515.927357]  __do_page_fault+0x233/0x4c0\n[  515.928506]  do_page_fault+0x32/0x140\n[  515.929646]  ? page_fault+0x8/0x30\n[  515.930770]  page_fault+0x1e/0x30\n\n3) OOM memory information\n\n[  515.958093] Mem-Info:\n[  515.959647] active_anon:26501758 inactive_anon:1179809 isolated_anon:0\n active_file:4402672 inactive_file:483963 isolated_file:1344\n unevictable:0 dirty:4886753 writeback:0 unstable:0\n slab_reclaimable:148442 slab_unreclaimable:18741\n mapped:1347 shmem:1347 pagetables:58669 bounce:0\n free:88663 free_pcp:0 free_cma:0\n...\n\n4) current memory state of all system tasks\n\n[  516.079544] [    744]     0   744     9211     1345   114688       82             0 systemd-journal\n[  516.082034] [    787]     0   787    31764        0   143360       92             0 lvmetad\n[  516.084465] [    792]     0   792    10930        1   110592      208         -1000 systemd-udevd\n[  516.086865] [   1199]     0  1199    13866        0   131072      112         -1000 auditd\n[  516.089190] [   1222]     0  1222    31990        1   110592      157             0 smartd\n[  516.091477] [   1225]     0  1225     4864       85    81920       43             0 irqbalance\n[  516.093712] [   1226]     0  1226    52612        0   258048      426             0 abrtd\n[  516.112128] [   1280]     0  1280   109774       55   299008      400             0 NetworkManager\n[  516.113998] [   1295]     0  1295    28817       37    69632       24             0 ksmtuned\n[  516.144596] [  10718]     0 10718  2622484  1721372 15998976   267219             0 panic\n[  516.145792] [  10719]     0 10719  2622484  1164767  9818112    53576             0 panic\n[  516.146977] [  10720]     0 10720  2622484  1174361  9904128    53709             0 panic\n[  516.148163] [  10721]     0 10721  2622484  1209070 10194944    54824             0 panic\n[  516.149329] [  10722]     0 10722  2622484  1745799 14774272    91138             0 panic\n\n5) oom context (contrains and the chosen victim).\n\noom-kill:constraint\u003dCONSTRAINT_NONE,nodemask\u003d(null),cpuset\u003d/,mems_allowed\u003d0-1,task\u003dpanic,pid\u003d10737,uid\u003d0\n\nAn admin can easily get the full oom context at a single line which\nmakes parsing much easier.\n\nLink: http://lkml.kernel.org/r/1542799799-36184-1-git-send-email-ufo19890607@gmail.com\nSigned-off-by: yuzhoujian \u003cyuzhoujian@didichuxing.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: \"Kirill A . Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Roman Gushchin \u003cguro@fb.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nCc: Yang Shi \u003cyang.s@alibaba-inc.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5cb113f2dbc8125f31005faebab161a2a84ebe6",
      "tree": "66317fd8b28dcbe4cdaac624edec6d3ae6a9aab5",
      "parents": [
        "9a2f45ff320287d49a3cd90ce68cb58a6da6f5e1"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Dec 28 00:36:03 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:48 2018 -0800"
      },
      "message": "mm: make free_reserved_area() return \"const char *\"\n\nand propagate through down the call stack.\n\nLink: http://lkml.kernel.org/r/20181124091411.GC10969@avx2\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a2f45ff320287d49a3cd90ce68cb58a6da6f5e1",
      "tree": "bfa0446171a70ab9c5eb1f566f1aa88b5f6cdbdd",
      "parents": [
        "c999fbd3dcc6535b1e298b016665ec23ac2b0a9a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Dec 28 00:35:59 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:48 2018 -0800"
      },
      "message": "mm/debug.c: make \"migrate_reason_names[]\" const char *\n\nThose strings are immutable as well.\n\nLink: http://lkml.kernel.org/r/20181124090508.GB10877@avx2\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReviewed-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c999fbd3dcc6535b1e298b016665ec23ac2b0a9a",
      "tree": "69eb8f0cf894e16467c6fcaea9789eb24638c205",
      "parents": [
        "1c30844d2dfe272d58c8fc000960b835d13aa2ac"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Dec 28 00:35:55 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:48 2018 -0800"
      },
      "message": "mm/mmzone.c: make \"migratetype_names\" const char *\n\nThose strings are immutable in fact.\n\nLink: http://lkml.kernel.org/r/20181124090327.GA10877@avx2\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1c30844d2dfe272d58c8fc000960b835d13aa2ac",
      "tree": "148a724047f2c9a98a6cb55d105a031f4e79efd7",
      "parents": [
        "0a79cdad5eb213b3a629e624565b1b3bf9192b7c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@techsingularity.net",
        "time": "Fri Dec 28 00:35:52 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:48 2018 -0800"
      },
      "message": "mm: reclaim small amounts of memory when an external fragmentation event occurs\n\nAn external fragmentation event was previously described as\n\n    When the page allocator fragments memory, it records the event using\n    the mm_page_alloc_extfrag event. If the fallback_order is smaller\n    than a pageblock order (order-9 on 64-bit x86) then it\u0027s considered\n    an event that will cause external fragmentation issues in the future.\n\nThe kernel reduces the probability of such events by increasing the\nwatermark sizes by calling set_recommended_min_free_kbytes early in the\nlifetime of the system.  This works reasonably well in general but if\nthere are enough sparsely populated pageblocks then the problem can still\noccur as enough memory is free overall and kswapd stays asleep.\n\nThis patch introduces a watermark_boost_factor sysctl that allows a zone\nwatermark to be temporarily boosted when an external fragmentation causing\nevents occurs.  The boosting will stall allocations that would decrease\nfree memory below the boosted low watermark and kswapd is woken if the\ncalling context allows to reclaim an amount of memory relative to the size\nof the high watermark and the watermark_boost_factor until the boost is\ncleared.  When kswapd finishes, it wakes kcompactd at the pageblock order\nto clean some of the pageblocks that may have been affected by the\nfragmentation event.  kswapd avoids any writeback, slab shrinkage and swap\nfrom reclaim context during this operation to avoid excessive system\ndisruption in the name of fragmentation avoidance.  Care is taken so that\nkswapd will do normal reclaim work if the system is really low on memory.\n\nThis was evaluated using the same workloads as \"mm, page_alloc: Spread\nallocations across zones before introducing fragmentation\".\n\n1-socket Skylake machine\nconfig-global-dhp__workload_thpfioscale XFS (no special madvise)\n4 fio threads, 1 THP allocating thread\n--------------------------------------\n\n4.20-rc3 extfrag events \u003c order 9:   804694\n4.20-rc3+patch:                      408912 (49% reduction)\n4.20-rc3+patch1-4:                    18421 (98% reduction)\n\n                                   4.20.0-rc3             4.20.0-rc3\n                                 lowzone-v5r8             boost-v5r8\nAmean     fault-base-1      653.58 (   0.00%)      652.71 (   0.13%)\nAmean     fault-huge-1        0.00 (   0.00%)      178.93 * -99.00%*\n\n                              4.20.0-rc3             4.20.0-rc3\n                            lowzone-v5r8             boost-v5r8\nPercentage huge-1        0.00 (   0.00%)        5.12 ( 100.00%)\n\nNote that external fragmentation causing events are massively reduced by\nthis path whether in comparison to the previous kernel or the vanilla\nkernel.  The fault latency for huge pages appears to be increased but that\nis only because THP allocations were successful with the patch applied.\n\n1-socket Skylake machine\nglobal-dhp__workload_thpfioscale-madvhugepage-xfs (MADV_HUGEPAGE)\n-----------------------------------------------------------------\n\n4.20-rc3 extfrag events \u003c order 9:  291392\n4.20-rc3+patch:                     191187 (34% reduction)\n4.20-rc3+patch1-4:                   13464 (95% reduction)\n\nthpfioscale Fault Latencies\n                                   4.20.0-rc3             4.20.0-rc3\n                                 lowzone-v5r8             boost-v5r8\nMin       fault-base-1      912.00 (   0.00%)      905.00 (   0.77%)\nMin       fault-huge-1      127.00 (   0.00%)      135.00 (  -6.30%)\nAmean     fault-base-1     1467.55 (   0.00%)     1481.67 (  -0.96%)\nAmean     fault-huge-1     1127.11 (   0.00%)     1063.88 *   5.61%*\n\n                              4.20.0-rc3             4.20.0-rc3\n                            lowzone-v5r8             boost-v5r8\nPercentage huge-1       77.64 (   0.00%)       83.46 (   7.49%)\n\nAs before, massive reduction in external fragmentation events, some jitter\non latencies and an increase in THP allocation success rates.\n\n2-socket Haswell machine\nconfig-global-dhp__workload_thpfioscale XFS (no special madvise)\n4 fio threads, 5 THP allocating threads\n----------------------------------------------------------------\n\n4.20-rc3 extfrag events \u003c order 9:  215698\n4.20-rc3+patch:                     200210 (7% reduction)\n4.20-rc3+patch1-4:                   14263 (93% reduction)\n\n                                   4.20.0-rc3             4.20.0-rc3\n                                 lowzone-v5r8             boost-v5r8\nAmean     fault-base-5     1346.45 (   0.00%)     1306.87 (   2.94%)\nAmean     fault-huge-5     3418.60 (   0.00%)     1348.94 (  60.54%)\n\n                              4.20.0-rc3             4.20.0-rc3\n                            lowzone-v5r8             boost-v5r8\nPercentage huge-5        0.78 (   0.00%)        7.91 ( 910.64%)\n\nThere is a 93% reduction in fragmentation causing events, there is a big\nreduction in the huge page fault latency and allocation success rate is\nhigher.\n\n2-socket Haswell machine\nglobal-dhp__workload_thpfioscale-madvhugepage-xfs (MADV_HUGEPAGE)\n-----------------------------------------------------------------\n\n4.20-rc3 extfrag events \u003c order 9: 166352\n4.20-rc3+patch:                    147463 (11% reduction)\n4.20-rc3+patch1-4:                  11095 (93% reduction)\n\nthpfioscale Fault Latencies\n                                   4.20.0-rc3             4.20.0-rc3\n                                 lowzone-v5r8             boost-v5r8\nAmean     fault-base-5     6217.43 (   0.00%)     7419.67 * -19.34%*\nAmean     fault-huge-5     3163.33 (   0.00%)     3263.80 (  -3.18%)\n\n                              4.20.0-rc3             4.20.0-rc3\n                            lowzone-v5r8             boost-v5r8\nPercentage huge-5       95.14 (   0.00%)       87.98 (  -7.53%)\n\nThere is a large reduction in fragmentation events with some jitter around\nthe latencies and success rates.  As before, the high THP allocation\nsuccess rate does mean the system is under a lot of pressure.  However, as\nthe fragmentation events are reduced, it would be expected that the\nlong-term allocation success rate would be higher.\n\nLink: http://lkml.kernel.org/r/20181123114528.28802-5-mgorman@techsingularity.net\nSigned-off-by: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Zi Yan \u003czi.yan@cs.rutgers.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a79cdad5eb213b3a629e624565b1b3bf9192b7c",
      "tree": "06aee01f5342cc975b477a9dc9e2987840453f59",
      "parents": [
        "a921444382b49cc7fdeca3fba3e278bc09484a27"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@techsingularity.net",
        "time": "Fri Dec 28 00:35:48 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:48 2018 -0800"
      },
      "message": "mm: use alloc_flags to record if kswapd can wake\n\nThis is a preparation patch that copies the GFP flag __GFP_KSWAPD_RECLAIM\ninto alloc_flags.  This is a preparation patch only that avoids having to\npass gfp_mask through a long callchain in a future patch.\n\nNote that the setting in the fast path happens in alloc_flags_nofragment()\nand it may be claimed that this has nothing to do with ALLOC_NO_FRAGMENT.\nThat\u0027s true in this patch but is not true later so it\u0027s done now for\neasier review to show where the flag needs to be recorded.\n\nNo functional change.\n\n[mgorman@techsingularity.net: ALLOC_KSWAPD flag needs to be applied in the !CONFIG_ZONE_DMA32 case]\n  Link: http://lkml.kernel.org/r/20181126143503.GO23260@techsingularity.net\nLink: http://lkml.kernel.org/r/20181123114528.28802-4-mgorman@techsingularity.net\nSigned-off-by: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Zi Yan \u003czi.yan@cs.rutgers.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a921444382b49cc7fdeca3fba3e278bc09484a27",
      "tree": "2437250398beef4bc4343ae123716a3d9d7f46ee",
      "parents": [
        "6bb154504f8b496780ec53ec81aba957a12981fa"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@techsingularity.net",
        "time": "Fri Dec 28 00:35:44 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:48 2018 -0800"
      },
      "message": "mm: move zone watermark accesses behind an accessor\n\nThis is a preparation patch only, no functional change.\n\nLink: http://lkml.kernel.org/r/20181123114528.28802-3-mgorman@techsingularity.net\nSigned-off-by: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Zi Yan \u003czi.yan@cs.rutgers.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6bb154504f8b496780ec53ec81aba957a12981fa",
      "tree": "dbed6f65d0ff903edb43788301f2969fa37d76df",
      "parents": [
        "f29d8e9c0191a2a02500945db505e5c89159c3f4"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@techsingularity.net",
        "time": "Fri Dec 28 00:35:41 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:48 2018 -0800"
      },
      "message": "mm, page_alloc: spread allocations across zones before introducing fragmentation\n\nPatch series \"Fragmentation avoidance improvements\", v5.\n\nIt has been noted before that fragmentation avoidance (aka\nanti-fragmentation) is not perfect. Given sufficient time or an adverse\nworkload, memory gets fragmented and the long-term success of high-order\nallocations degrades. This series defines an adverse workload, a definition\nof external fragmentation events (including serious) ones and a series\nthat reduces the level of those fragmentation events.\n\nThe details of the workload and the consequences are described in more\ndetail in the changelogs. However, from patch 1, this is a high-level\nsummary of the adverse workload. The exact details are found in the\nmmtests implementation.\n\nThe broad details of the workload are as follows;\n\n1. Create an XFS filesystem (not specified in the configuration but done\n   as part of the testing for this patch)\n2. Start 4 fio threads that write a number of 64K files inefficiently.\n   Inefficiently means that files are created on first access and not\n   created in advance (fio parameterr create_on_open\u003d1) and fallocate\n   is not used (fallocate\u003dnone). With multiple IO issuers this creates\n   a mix of slab and page cache allocations over time. The total size\n   of the files is 150% physical memory so that the slabs and page cache\n   pages get mixed\n3. Warm up a number of fio read-only threads accessing the same files\n   created in step 2. This part runs for the same length of time it\n   took to create the files. It\u0027ll fault back in old data and further\n   interleave slab and page cache allocations. As it\u0027s now low on\n   memory due to step 2, fragmentation occurs as pageblocks get\n   stolen.\n4. While step 3 is still running, start a process that tries to allocate\n   75% of memory as huge pages with a number of threads. The number of\n   threads is based on a (NR_CPUS_SOCKET - NR_FIO_THREADS)/4 to avoid THP\n   threads contending with fio, any other threads or forcing cross-NUMA\n   scheduling. Note that the test has not been used on a machine with less\n   than 8 cores. The benchmark records whether huge pages were allocated\n   and what the fault latency was in microseconds\n5. Measure the number of events potentially causing external fragmentation,\n   the fault latency and the huge page allocation success rate.\n6. Cleanup\n\nOverall the series reduces external fragmentation causing events by over 94%\non 1 and 2 socket machines, which in turn impacts high-order allocation\nsuccess rates over the long term. There are differences in latencies and\nhigh-order allocation success rates. Latencies are a mixed bag as they\nare vulnerable to exact system state and whether allocations succeeded\nso they are treated as a secondary metric.\n\nPatch 1 uses lower zones if they are populated and have free memory\n\tinstead of fragmenting a higher zone. It\u0027s special cased to\n\thandle a Normal-\u003eDMA32 fallback with the reasons explained\n\tin the changelog.\n\nPatch 2-4 boosts watermarks temporarily when an external fragmentation\n\tevent occurs. kswapd wakes to reclaim a small amount of old memory\n\tand then wakes kcompactd on completion to recover the system\n\tslightly. This introduces some overhead in the slowpath. The level\n\tof boosting can be tuned or disabled depending on the tolerance\n\tfor fragmentation vs allocation latency.\n\nPatch 5 stalls some movable allocation requests to let kswapd from patch 4\n\tmake some progress. The duration of the stalls is very low but it\n\tis possible to tune the system to avoid fragmentation events if\n\tlarger stalls can be tolerated.\n\nThe bulk of the improvement in fragmentation avoidance is from patches\n1-4 but patch 5 can deal with a rare corner case and provides the option\nof tuning a system for THP allocation success rates in exchange for\nsome stalls to control fragmentation.\n\nThis patch (of 5):\n\nThe page allocator zone lists are iterated based on the watermarks of each\nzone which does not take anti-fragmentation into account.  On x86, node 0\nmay have multiple zones while other nodes have one zone.  A consequence is\nthat tasks running on node 0 may fragment ZONE_NORMAL even though\nZONE_DMA32 has plenty of free memory.  This patch special cases the\nallocator fast path such that it\u0027ll try an allocation from a lower local\nzone before fragmenting a higher zone.  In this case, stealing of\npageblocks or orders larger than a pageblock are still allowed in the fast\npath as they are uninteresting from a fragmentation point of view.\n\nThis was evaluated using a benchmark designed to fragment memory before\nattempting THP allocations.  It\u0027s implemented in mmtests as the following\nconfigurations\n\nconfigs/config-global-dhp__workload_thpfioscale\nconfigs/config-global-dhp__workload_thpfioscale-defrag\nconfigs/config-global-dhp__workload_thpfioscale-madvhugepage\n\ne.g. from mmtests\n./run-mmtests.sh --run-monitor --config configs/config-global-dhp__workload_thpfioscale test-run-1\n\nThe broad details of the workload are as follows;\n\n1. Create an XFS filesystem (not specified in the configuration but done\n   as part of the testing for this patch).\n2. Start 4 fio threads that write a number of 64K files inefficiently.\n   Inefficiently means that files are created on first access and not\n   created in advance (fio parameter create_on_open\u003d1) and fallocate\n   is not used (fallocate\u003dnone). With multiple IO issuers this creates\n   a mix of slab and page cache allocations over time. The total size\n   of the files is 150% physical memory so that the slabs and page cache\n   pages get mixed.\n3. Warm up a number of fio read-only processes accessing the same files\n   created in step 2. This part runs for the same length of time it\n   took to create the files. It\u0027ll refault old data and further\n   interleave slab and page cache allocations. As it\u0027s now low on\n   memory due to step 2, fragmentation occurs as pageblocks get\n   stolen.\n4. While step 3 is still running, start a process that tries to allocate\n   75% of memory as huge pages with a number of threads. The number of\n   threads is based on a (NR_CPUS_SOCKET - NR_FIO_THREADS)/4 to avoid THP\n   threads contending with fio, any other threads or forcing cross-NUMA\n   scheduling. Note that the test has not been used on a machine with less\n   than 8 cores. The benchmark records whether huge pages were allocated\n   and what the fault latency was in microseconds.\n5. Measure the number of events potentially causing external fragmentation,\n   the fault latency and the huge page allocation success rate.\n6. Cleanup the test files.\n\nNote that due to the use of IO and page cache that this benchmark is not\nsuitable for running on large machines where the time to fragment memory\nmay be excessive.  Also note that while this is one mix that generates\nfragmentation that it\u0027s not the only mix that generates fragmentation.\nDifferences in workload that are more slab-intensive or whether SLUB is\nused with high-order pages may yield different results.\n\nWhen the page allocator fragments memory, it records the event using the\nmm_page_alloc_extfrag ftrace event.  If the fallback_order is smaller than\na pageblock order (order-9 on 64-bit x86) then it\u0027s considered to be an\n\"external fragmentation event\" that may cause issues in the future.\nHence, the primary metric here is the number of external fragmentation\nevents that occur with order \u003c 9.  The secondary metric is allocation\nlatency and huge page allocation success rates but note that differences\nin latencies and what the success rate also can affect the number of\nexternal fragmentation event which is why it\u0027s a secondary metric.\n\n1-socket Skylake machine\nconfig-global-dhp__workload_thpfioscale XFS (no special madvise)\n4 fio threads, 1 THP allocating thread\n--------------------------------------\n\n4.20-rc3 extfrag events \u003c order 9:   804694\n4.20-rc3+patch:                      408912 (49% reduction)\n\nthpfioscale Fault Latencies\n                                   4.20.0-rc3             4.20.0-rc3\n                                      vanilla           lowzone-v5r8\nAmean     fault-base-1      662.92 (   0.00%)      653.58 *   1.41%*\nAmean     fault-huge-1        0.00 (   0.00%)        0.00 (   0.00%)\n\n                              4.20.0-rc3             4.20.0-rc3\n                                 vanilla           lowzone-v5r8\nPercentage huge-1        0.00 (   0.00%)        0.00 (   0.00%)\n\nFault latencies are slightly reduced while allocation success rates remain\nat zero as this configuration does not make any special effort to allocate\nTHP and fio is heavily active at the time and either filling memory or\nkeeping pages resident.  However, a 49% reduction of serious fragmentation\nevents reduces the changes of external fragmentation being a problem in\nthe future.\n\nVlastimil asked during review for a breakdown of the allocation types\nthat are falling back.\n\nvanilla\n   3816 MIGRATE_UNMOVABLE\n 800845 MIGRATE_MOVABLE\n     33 MIGRATE_UNRECLAIMABLE\n\npatch\n    735 MIGRATE_UNMOVABLE\n 408135 MIGRATE_MOVABLE\n     42 MIGRATE_UNRECLAIMABLE\n\nThe majority of the fallbacks are due to movable allocations and this is\nconsistent for the workload throughout the series so will not be presented\nagain as the primary source of fallbacks are movable allocations.\n\nMovable fallbacks are sometimes considered \"ok\" to fallback because they\ncan be migrated.  The problem is that they can fill an\nunmovable/reclaimable pageblock causing those allocations to fallback\nlater and polluting pageblocks with pages that cannot move.  If there is a\nmovable fallback, it is pretty much guaranteed to affect an\nunmovable/reclaimable pageblock and while it might not be enough to\nactually cause a unmovable/reclaimable fallback in the future, we cannot\nknow that in advance so the patch takes the only option available to it.\nHence, it\u0027s important to control them.  This point is also consistent\nthroughout the series and will not be repeated.\n\n1-socket Skylake machine\nglobal-dhp__workload_thpfioscale-madvhugepage-xfs (MADV_HUGEPAGE)\n-----------------------------------------------------------------\n\n4.20-rc3 extfrag events \u003c order 9:  291392\n4.20-rc3+patch:                     191187 (34% reduction)\n\nthpfioscale Fault Latencies\n                                   4.20.0-rc3             4.20.0-rc3\n                                      vanilla           lowzone-v5r8\nAmean     fault-base-1     1495.14 (   0.00%)     1467.55 (   1.85%)\nAmean     fault-huge-1     1098.48 (   0.00%)     1127.11 (  -2.61%)\n\nthpfioscale Percentage Faults Huge\n                              4.20.0-rc3             4.20.0-rc3\n                                 vanilla           lowzone-v5r8\nPercentage huge-1       78.57 (   0.00%)       77.64 (  -1.18%)\n\nFragmentation events were reduced quite a bit although this is known\nto be a little variable. The latencies and allocation success rates\nare similar but they were already quite high.\n\n2-socket Haswell machine\nconfig-global-dhp__workload_thpfioscale XFS (no special madvise)\n4 fio threads, 5 THP allocating threads\n----------------------------------------------------------------\n\n4.20-rc3 extfrag events \u003c order 9:  215698\n4.20-rc3+patch:                     200210 (7% reduction)\n\nthpfioscale Fault Latencies\n                                   4.20.0-rc3             4.20.0-rc3\n                                      vanilla           lowzone-v5r8\nAmean     fault-base-5     1350.05 (   0.00%)     1346.45 (   0.27%)\nAmean     fault-huge-5     4181.01 (   0.00%)     3418.60 (  18.24%)\n\n                              4.20.0-rc3             4.20.0-rc3\n                                 vanilla           lowzone-v5r8\nPercentage huge-5        1.15 (   0.00%)        0.78 ( -31.88%)\n\nThe reduction of external fragmentation events is slight and this is\npartially due to the removal of __GFP_THISNODE in commit ac5b2c18911f\n(\"mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings\") as THP\nallocations can now spill over to remote nodes instead of fragmenting\nlocal memory.\n\n2-socket Haswell machine\nglobal-dhp__workload_thpfioscale-madvhugepage-xfs (MADV_HUGEPAGE)\n-----------------------------------------------------------------\n\n4.20-rc3 extfrag events \u003c order 9: 166352\n4.20-rc3+patch:                    147463 (11% reduction)\n\nthpfioscale Fault Latencies\n                                   4.20.0-rc3             4.20.0-rc3\n                                      vanilla           lowzone-v5r8\nAmean     fault-base-5     6138.97 (   0.00%)     6217.43 (  -1.28%)\nAmean     fault-huge-5     2294.28 (   0.00%)     3163.33 * -37.88%*\n\nthpfioscale Percentage Faults Huge\n                              4.20.0-rc3             4.20.0-rc3\n                                 vanilla           lowzone-v5r8\nPercentage huge-5       96.82 (   0.00%)       95.14 (  -1.74%)\n\nThere was a slight reduction in external fragmentation events although the\nlatencies were higher.  The allocation success rate is high enough that\nthe system is struggling and there is quite a lot of parallel reclaim and\ncompaction activity.  There is also a certain degree of luck on whether\nprocesses start on node 0 or not for this patch but the relevance is\nreduced later in the series.\n\nOverall, the patch reduces the number of external fragmentation causing\nevents so the success of THP over long periods of time would be improved\nfor this adverse workload.\n\nLink: http://lkml.kernel.org/r/20181123114528.28802-2-mgorman@techsingularity.net\nSigned-off-by: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Zi Yan \u003czi.yan@cs.rutgers.edu\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f29d8e9c0191a2a02500945db505e5c89159c3f4",
      "tree": "1cdbe349e0efd8fa47610138469ea8abb63c59ac",
      "parents": [
        "3b6fd6ffb27c2efa003c6d4d15ca72c054b71d7c"
      ],
      "author": {
        "name": "David Hildenbrand",
        "email": "david@redhat.com",
        "time": "Fri Dec 28 00:35:36 2018 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 28 12:11:48 2018 -0800"
      },
      "message": "mm/memory_hotplug: drop \"online\" parameter from add_memory_resource()\n\nUserspace should always be in charge of how to online memory and if memory\nshould be onlined automatically in the kernel.  Let\u0027s drop the parameter\nto overwrite this - XEN passes memhp_auto_online, just like add_memory(),\nso we can directly use that instead internally.\n\nLink: http://lkml.kernel.org/r/20181123123740.27652-1-david@redhat.com\nSigned-off-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nReviewed-by: Oscar Salvador \u003cosalvador@suse.de\u003e\nAcked-by: Juergen Gross \u003cjgross@suse.com\u003e\nCc: Boris Ostrovsky \u003cboris.ostrovsky@oracle.com\u003e\nCc: Stefano Stabellini \u003csstabellini@kernel.org\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Pavel Tatashin \u003cpasha.tatashin@oracle.com\u003e\nCc: David Hildenbrand \u003cdavid@redhat.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Arun KS \u003carunks@codeaurora.org\u003e\nCc: Mathieu Malaterre \u003cmalat@debian.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "3b6fd6ffb27c2efa003c6d4d15ca72c054b71d7c"
}
