)]}'
{
  "log": [
    {
      "commit": "3afebf577d4cb21215abb388e80c46c9c387ed0f",
      "tree": "68db9434049a5119cc5e0a5d689dbfaa7419f6af",
      "parents": [
        "980d7929816236476967218645c30acc022042eb"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 16 10:40:32 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 16 10:40:32 2012 -0700"
      },
      "message": "Revert \"Extcon: adc_jack: adc-jack driver to support 3.5 pi or simliar devices\"\n\nThis reverts commit 980d7929816236476967218645c30acc022042eb as it\nbreaks the build with the error:\n\tERROR: \"extcon_cable_name\" [drivers/extcon/extcon-adc-jack.ko] undefined!\n\nCc: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nCc: anish kumar \u003canish.singh@samsung.com\u003e\nCc: MyungJoo Ham \u003cmyungjoo.ham@samsung.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "980d7929816236476967218645c30acc022042eb",
      "tree": "d1edebc580e332a34e56a9af0af326e049e274c8",
      "parents": [
        "34efe4dc47227264a38e60c878b4831d5f0d5a33"
      ],
      "author": {
        "name": "anish kumar",
        "email": "anish198519851985@gmail.com",
        "time": "Fri Aug 10 00:29:43 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 16 10:37:00 2012 -0700"
      },
      "message": "Extcon: adc_jack: adc-jack driver to support 3.5 pi or simliar devices\n\nExternal connector devices that decides connection information based on\nADC values may use adc-jack device driver. The user simply needs to\nprovide a table of adc range and connection states. Then, extcon\nframework will automatically notify others.\n\nChanges in V1:\nadded Lars-Peter Clausen suggested changes:\nUsing macros to get rid of boiler plate code such as devm_kzalloc\nand module_platform_driver.Other changes suggested are related to\ncoding guidelines.\n\nChanges in V2:\nRemoved some unnecessary checks and changed the way we are un-regitering\nextcon and freeing the irq while removing.\n\nChanges in V3:\nRenamed the files to comply with extcon naming.\n\nChanges in V4:\nAdded the cancel_work_sync during removing of driver.\n\nChanges in V5:\nAdded the dependency of IIO in Kconfig.\n\nChanges in V6:\nSome nitpicks related to naming.\n\nReviewed-by: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nSigned-off-by: anish kumar \u003canish.singh@samsung.com\u003e\nSigned-off-by: MyungJoo Ham \u003cmyungjoo.ham@samsung.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "689ae231afbac8979f96100b372a5a73458baaa9",
      "tree": "12b0478fa0fdef746f4d571c6e374aa30ab0c545",
      "parents": [
        "a525a3ddeaca69f405d98442ab3c0746e53168dc"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Fri Jul 27 22:14:59 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 16 10:32:07 2012 -0700"
      },
      "message": "platform: Add support for automatic device IDs\n\nRight now we have support for explicit platform device IDs, as well as\nID-less platform devices when a given device type can only have one\ninstance. However there are cases where multiple instances of a device\ntype can exist, and their IDs aren\u0027t (and can\u0027t be) known in advance\nand do not matter. In that case we need automatic device IDs to avoid\ndevice name collisions.\n\nI am using magic ID value -2 (PLATFORM_DEVID_AUTO) for this, similar\nto -1 for ID-less devices. The automatically allocated device IDs are\nglobal (to avoid an additional per-driver cost.) We keep note that the\nID was automatically allocated so that it can be freed later.\n\nNote that we also restore the ID to PLATFORM_DEVID_AUTO on error and\ndevice deletion, to avoid avoid unexpected behavior on retry. I don\u0027t\nreally expect retries on platform device addition, but better safe\nthan sorry.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "fc6bdb59a501740b28ed3b616641a22c8dc5dd31",
      "tree": "00ddba349c7e96b03af0913da1a74eae8a94a2db",
      "parents": [
        "44d82e2963551eafa378a3fc7a923df7853af4e2",
        "1fcfd08bd0704e1888bd73153e8d2ca3640e22f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 02 11:52:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 02 11:52:39 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus-3.6\u0027 of git://dev.laptop.org/users/dilinger/linux-olpc\n\nPull OLPC platform updates from Andres Salomon:\n \"These move the OLPC Embedded Controller driver out of\n  arch/x86/platform and into drivers/platform/olpc.\n\n  OLPC machines are now ARM-based (which means lots of x86 and ARM\n  changes), but are typically pretty self-contained..  so it makes more\n  sense to go through a separate OLPC tree after getting the appropriate\n  review/ACKs.\"\n\n* \u0027for-linus-3.6\u0027 of git://dev.laptop.org/users/dilinger/linux-olpc:\n  x86: OLPC: move s/r-related EC cmds to EC driver\n  Platform: OLPC: move global variables into priv struct\n  Platform: OLPC: move debugfs support from x86 EC driver\n  x86: OLPC: switch over to using new EC driver on x86\n  Platform: OLPC: add a suspended flag to the EC driver\n  Platform: OLPC: turn EC driver into a platform_driver\n  Platform: OLPC: allow EC cmd to be overridden, and create a workqueue to call it\n  drivers: OLPC: update various drivers to include olpc-ec.h\n  Platform: OLPC: add a stub to drivers/platform/ for the OLPC EC driver\n"
    },
    {
      "commit": "0a276d1675bc1b8de3ba269ba64b8f3e288d8309",
      "tree": "ff552f58874b245f5962487ef53ce27ebcda5857",
      "parents": [
        "25aa6a7ae46c6a041c46a2d314b9ab7c4f2baa41",
        "08298f0612e5e369d1da89b92cac5d2c71ddb9af"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 02 11:45:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 02 11:45:42 2012 -0700"
      },
      "message": "Merge tag \u0027sh-for-linus\u0027 of git://github.com/pmundt/linux-sh\n\nPull SuperH fixes from Paul Mundt.\n\n* tag \u0027sh-for-linus\u0027 of git://github.com/pmundt/linux-sh: (24 commits)\n  sh: explicitly include sh_dma.h in setup-sh7722.c\n  sh: ecovec: care CN5 VBUS if USB host mode\n  sh: sh7724: fixup renesas_usbhs clock settings\n  sh: intc: initial irqdomain support.\n  sh: pfc: Fix up init ordering mess.\n  serial: sh-sci: fix compilation breakage, when DMA is enabled\n  dmaengine: shdma: restore partial transfer calculation\n  sh: modify the sh_dmae_slave_config for RSPI in setup-sh7757\n  sh: Fix up recursive fault in oops with unset TTB.\n  sh: pfc: Build fix for pinctrl_remove_gpio_range() changes.\n  sh: select the fixed regulator driver on several boards\n  sh: ecovec: switch MMC power control to regulators\n  sh: add fixed voltage regulators to se7724\n  sh: add fixed voltage regulators to sdk7786\n  sh: add fixed voltage regulators to rsk\n  sh: add fixed voltage regulators to migor\n  sh: add fixed voltage regulators to kfr2r09\n  sh: add fixed voltage regulators to ap325rxa\n  sh: add fixed voltage regulators to sh7757lcr\n  sh: add fixed voltage regulators to sh2007\n  ...\n"
    },
    {
      "commit": "a6dc77254b3c3eb0307b372b77b861d5cd2ead08",
      "tree": "5770a808b0527eebeff43f16508ea8f03e459b58",
      "parents": [
        "02a6ec6a24077ffda33b99cb193e8a536b90711d",
        "0e52d987c0b242fe3fe4c8e9732bd663cce0e50b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 16:41:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 16:41:07 2012 -0700"
      },
      "message": "Merge branch \u0027dmaengine\u0027 of git://git.linaro.org/people/rmk/linux-arm\n\nPull ARM DMA engine updates from Russell King:\n \"This looks scary at first glance, but what it is is:\n   - a rework of the sa11x0 DMA engine driver merged during the previous\n     cycle, to extract a common set of helper functions for DMA engine\n     implementations.\n   - conversion of amba-pl08x.c to use these helper functions.\n   - addition of OMAP DMA engine driver (using these helper functions),\n     and conversion of some of the OMAP DMA users to use DMA engine.\n\n  Nothing in the helper functions is ARM specific, so I hope that other\n  implementations can consolidate some of their code by making use of\n  these helpers.\n\n  This has been sitting in linux-next most of the merge cycle, and has\n  been tested by several OMAP folk.  I\u0027ve tested it on sa11x0 platforms,\n  and given it my best shot on my broken platforms which have the\n  amba-pl08x controller.\n\n  The last point is the addition to feature-removal-schedule.txt, which\n  will have a merge conflict.  Between myself and TI, we\u0027re planning to\n  remove the old TI DMA implementation next year.\"\n\nFix up trivial add/add conflicts in Documentation/feature-removal-schedule.txt\nand drivers/dma/{Kconfig,Makefile}\n\n* \u0027dmaengine\u0027 of git://git.linaro.org/people/rmk/linux-arm: (53 commits)\n  ARM: 7481/1: OMAP2+: omap2plus_defconfig: enable OMAP DMA engine\n  ARM: 7464/1: mmc: omap_hsmmc: ensure probe returns error if DMA channel request fails\n  Add feature removal of old OMAP private DMA implementation\n  mtd: omap2: remove private DMA API implementation\n  mtd: omap2: add DMA engine support\n  spi: omap2-mcspi: remove private DMA API implementation\n  spi: omap2-mcspi: add DMA engine support\n  ARM: omap: remove mmc platform data dma_mask and initialization\n  mmc: omap: remove private DMA API implementation\n  mmc: omap: add DMA engine support\n  mmc: omap_hsmmc: remove private DMA API implementation\n  mmc: omap_hsmmc: add DMA engine support\n  dmaengine: omap: add support for cyclic DMA\n  dmaengine: omap: add support for setting fi\n  dmaengine: omap: add support for returning residue in tx_state method\n  dmaengine: add OMAP DMA engine driver\n  dmaengine: sa11x0-dma: add cyclic DMA support\n  dmaengine: sa11x0-dma: fix DMA residue support\n  dmaengine: PL08x: ensure all descriptors are freed when channel is released\n  dmaengine: PL08x: get rid of write only pool_ctr and free_txd locking\n  ...\n"
    },
    {
      "commit": "d4fdc32517efaab0493c134d5cc070c252d51275",
      "tree": "7b70d93a65fa1b74f84af835cd941c3f2c55019a",
      "parents": [
        "9a51cf28a3377689edfe190b9590da7d46e8f3fb",
        "a0239073fd75489d25575cf3aaf71ab55b416020"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:45:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:45:12 2012 -0700"
      },
      "message": "Merge tag \u0027fbdev-updates-for-3.6\u0027 of git://github.com/schandinat/linux-2.6\n\nPull fbdev updates from Florian Tobias Schandinat:\n - large updates for OMAP\n   - support for LCD3 overlay manager (omap5)\n   - omapdss output cleanup\n   - removal of passive matrix LCD support as there are no drivers for\n     such panels for DSS or DSS2 and nobody complained (cleanup)\n - large updates for SH Mobile\n   - overlay support\n   - separating MERAM (cache) from framebuffer driver\n - some updates for Exynos and da8xx-fb\n - various other small patches\n\n* tag \u0027fbdev-updates-for-3.6\u0027 of git://github.com/schandinat/linux-2.6: (78 commits)\n  da8xx-fb: fix compile issue due to missing include\n  fbdev: Make pixel_to_pat() failure mode more friendly\n  da8xx-fb: do not turn ON LCD backlight unless LCDC is enabled\n  fbdev: sh_mobile_lcdc: Fix vertical panning step\n  video: exynos mipi dsi: Fix mipi dsi regulators handling issue\n  video: da8xx-fb: do clock reset of revision 2 LCDC before enabling\n  arm: da850: configure LCDC fifo threshold\n  video: da8xx-fb: configure FIFO threshold to reduce underflow errors\n  video: da8xx-fb: fix flicker due to 1 frame delay in updated frame\n  video: da8xx-fb rev2: fix disabling of palette completion interrupt\n  da8xx-fb: add missing FB_BLANK operations\n  video: exynos_dp: use usleep_range instead of delay\n  video: exynos_dp: check the only INTERLANE_ALIGN_DONE bit during Link Training\n  fb: epson1355fb: Fix section mismatch\n  video: exynos_dp: fix wrong DPCD address during Link Training\n  video/smscufx: fix line counting in fb_write\n  aty128fb: Fix coding style issues\n  fbdev: sh_mobile_lcdc: Fix pan offset computation in YUV mode\n  fbdev: sh_mobile_lcdc: Fix overlay registers update during pan operation\n  fbdev: sh_mobile_lcdc: Support horizontal panning\n  ...\n"
    },
    {
      "commit": "9a51cf28a3377689edfe190b9590da7d46e8f3fb",
      "tree": "d17c9e58ae5eb993811174bfa7a8d45002145047",
      "parents": [
        "a0e881b7c189fa2bd76c024dbff91e79511c971d",
        "aff252a848ce21b431ba822de3dab9c4c94571cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:42:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:42:26 2012 -0700"
      },
      "message": "Merge tag \u0027sound-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound\n\nPull sound fixes from Takashi Iwai:\n \"A collection of small fixes that have been found recently.  Most of\n  the commits are regression fixes in HD-audio and some other random\n  drivers.\"\n\n* tag \u0027sound-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:\n  ALSA: snd-usb: fix clock source validity index\n  ALSA: hda - Fix mute-LED GPIO initialization for IDT codecs\n  ALSA: hda - Add descriptions for missing IDT 92HD83x models\n  ALSA: hda - Fix polarity of mute LED on HP Mini 210\n  ALSA: es1688 - freeup resources on init failure\n  ALSA: hda - Workaround for silent output on VAIO Z with ALC889\n  ALSA: hda - Fix WARNING from HDMI/DP parser\n  ALSA: hda - Detach from converter at closing in patch_hdmi.c\n  ALSA: hda - Fix mute-LED GPIO setup for HP Mini 210\n  ALSA: mpu401: Fix missing initialization of irq field\n  ALSA: hda - Fix invalid D3 of headphone DAC on VT202x codecs\n"
    },
    {
      "commit": "a0e881b7c189fa2bd76c024dbff91e79511c971d",
      "tree": "0c801918565b08921d21aceee5b326f64d998f5f",
      "parents": [
        "eff0d13f3823f35d70228cd151d2a2c89288ff32",
        "dbc6e0222d79e78925fe20733844a796a4b72cf9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:26:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:26:23 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull second vfs pile from Al Viro:\n \"The stuff in there: fsfreeze deadlock fixes by Jan (essentially, the\n  deadlock reproduced by xfstests 068), symlink and hardlink restriction\n  patches, plus assorted cleanups and fixes.\n\n  Note that another fsfreeze deadlock (emergency thaw one) is *not*\n  dealt with - the series by Fernando conflicts a lot with Jan\u0027s, breaks\n  userland ABI (FIFREEZE semantics gets changed) and trades the deadlock\n  for massive vfsmount leak; this is going to be handled next cycle.\n  There probably will be another pull request, but that stuff won\u0027t be\n  in it.\"\n\nFix up trivial conflicts due to unrelated changes next to each other in\ndrivers/{staging/gdm72xx/usb_boot.c, usb/gadget/storage_common.c}\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (54 commits)\n  delousing target_core_file a bit\n  Documentation: Correct s_umount state for freeze_fs/unfreeze_fs\n  fs: Remove old freezing mechanism\n  ext2: Implement freezing\n  btrfs: Convert to new freezing mechanism\n  nilfs2: Convert to new freezing mechanism\n  ntfs: Convert to new freezing mechanism\n  fuse: Convert to new freezing mechanism\n  gfs2: Convert to new freezing mechanism\n  ocfs2: Convert to new freezing mechanism\n  xfs: Convert to new freezing code\n  ext4: Convert to new freezing mechanism\n  fs: Protect write paths by sb_start_write - sb_end_write\n  fs: Skip atime update on frozen filesystem\n  fs: Add freezing handling to mnt_want_write() / mnt_drop_write()\n  fs: Improve filesystem freezing handling\n  switch the protection of percpu_counter list to spinlock\n  nfsd: Push mnt_want_write() outside of i_mutex\n  btrfs: Push mnt_want_write() outside of i_mutex\n  fat: Push mnt_want_write() outside of i_mutex\n  ...\n"
    },
    {
      "commit": "eff0d13f3823f35d70228cd151d2a2c89288ff32",
      "tree": "55bff4dbcc43c4b0f38509ac4de585c0c457980c",
      "parents": [
        "8cf1a3fce0b95050b63d451c9d561da0da2aa4d6",
        "10af8138eb6d09d6a768e43ef1aa9b2f16b8c7be"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 09:06:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 09:06:47 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.6/drivers\u0027 of git://git.kernel.dk/linux-block\n\nPull block driver changes from Jens Axboe:\n\n - Making the plugging support for drivers a bit more sane from Neil.\n   This supersedes the plugging change from Shaohua as well.\n\n - The usual round of drbd updates.\n\n - Using a tail add instead of a head add in the request completion for\n   ndb, making us find the most completed request more quickly.\n\n - A few floppy changes, getting rid of a duplicated flag and also\n   running the floppy init async (since it takes forever in boot terms)\n   from Andi.\n\n* \u0027for-3.6/drivers\u0027 of git://git.kernel.dk/linux-block:\n  floppy: remove duplicated flag FD_RAW_NEED_DISK\n  blk: pass from_schedule to non-request unplug functions.\n  block: stack unplug\n  blk: centralize non-request unplug handling.\n  md: remove plug_cnt feature of plugging.\n  block/nbd: micro-optimization in nbd request completion\n  drbd: announce FLUSH/FUA capability to upper layers\n  drbd: fix max_bio_size to be unsigned\n  drbd: flush drbd work queue before invalidate/invalidate remote\n  drbd: fix potential access after free\n  drbd: call local-io-error handler early\n  drbd: do not reset rs_pending_cnt too early\n  drbd: reset congestion information before reporting it in /proc/drbd\n  drbd: report congestion if we are waiting for some userland callback\n  drbd: differentiate between normal and forced detach\n  drbd: cleanup, remove two unused global flags\n  floppy: Run floppy initialization asynchronous\n"
    },
    {
      "commit": "8cf1a3fce0b95050b63d451c9d561da0da2aa4d6",
      "tree": "0dc7f93474c3be601a5893900db1418dfd60ba5d",
      "parents": [
        "fcff06c438b60f415af5983efe92811d6aa02ad1",
        "80799fbb7d10c30df78015b3fa21f7ffcfc0eb2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 09:02:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 09:02:41 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.6/core\u0027 of git://git.kernel.dk/linux-block\n\nPull core block IO bits from Jens Axboe:\n \"The most complicated part if this is the request allocation rework by\n  Tejun, which has been queued up for a long time and has been in\n  for-next ditto as well.\n\n  There are a few commits from yesterday and today, mostly trivial and\n  obvious fixes.  So I\u0027m pretty confident that it is sound.  It\u0027s also\n  smaller than usual.\"\n\n* \u0027for-3.6/core\u0027 of git://git.kernel.dk/linux-block:\n  block: remove dead func declaration\n  block: add partition resize function to blkpg ioctl\n  block: uninitialized ioc-\u003enr_tasks triggers WARN_ON\n  block: do not artificially constrain max_sectors for stacking drivers\n  blkcg: implement per-blkg request allocation\n  block: prepare for multiple request_lists\n  block: add q-\u003enr_rqs[] and move q-\u003erq.elvpriv to q-\u003enr_rqs_elvpriv\n  blkcg: inline bio_blkcg() and friends\n  block: allocate io_context upfront\n  block: refactor get_request[_wait]()\n  block: drop custom queue draining used by scsi_transport_{iscsi|fc}\n  mempool: add @gfp_mask to mempool_create_node()\n  blkcg: make root blkcg allocation use %GFP_KERNEL\n  blkcg: __blkg_lookup_create() doesn\u0027t need radix preload\n"
    },
    {
      "commit": "068535f1fef4c90aee23eb7b9b9a71c5b72d7cd0",
      "tree": "ca71858417d881bc8f72f4a2a7b035d041f7a43c",
      "parents": [
        "2d534926205db9ffce4bbbde67cb9b2cee4b835c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Aug 01 07:56:16 2012 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 09:01:46 2012 -0700"
      },
      "message": "locks: remove unused lm_release_private\n\nIn commit 3b6e2723f32d (\"locks: prevent side-effects of\nlocks_release_private before file_lock is initialized\") we removed the\nlast user of lm_release_private without removing the field itself.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c83f6bf98dc1f1a194118b3830706cebbebda8c4",
      "tree": "ea8fbd925584f784164617964a9f025bda16ed15",
      "parents": [
        "4638a83e8615de9c16c39dfed234951d0f468cf1"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Wed Aug 01 12:24:18 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Aug 01 12:24:18 2012 +0200"
      },
      "message": "block: add partition resize function to blkpg ioctl\n\nAdd a new operation code (BLKPG_RESIZE_PARTITION) to the BLKPG ioctl that\nallows altering the size of an existing partition, even if it is currently\nin use.\n\nThis patch converts hd_struct-\u003enr_sects into sequence counter because\nOne might extend a partition while IO is happening to it and update of\nnr_sects can be non-atomic on 32bit machines with 64bit sector_t. This\ncan lead to issues like reading inconsistent size of a partition. Sequence\ncounter have been used so that readers don\u0027t have to take bdev mutex lock\nas we call sector_in_part() very frequently.\n\nNow all the access to hd_struct-\u003enr_sects should happen using sequence\ncounter read/update helper functions part_nr_sects_read/part_nr_sects_write.\nThere is one exception though, set_capacity()/get_capacity(). I think\ntheoritically race should exist there too but this patch does not\nmodify set_capacity()/get_capacity() due to sheer number of call sites\nand I am afraid that change might break something. I have left that as a\nTODO item. We can handle it later if need be. This patch does not introduce\nany new races as such w.r.t set_capacity()/get_capacity().\n\nv2: Add CONFIG_LBDAF test to UP preempt case as suggested by Phillip.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Phillip Susi \u003cpsusi@ubuntu.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "f38770477a30d03b6296570071ca2fcd6d3a5f11",
      "tree": "3dd11460c4115d97137a6ff82683e593a3813607",
      "parents": [
        "1ca8fe38a6c958babe6571e39cb0115a40b94603",
        "1d6a21b0a672fb29b01ccf397d478e0541e17716"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Aug 01 17:14:52 2012 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Aug 01 17:14:52 2012 +0900"
      },
      "message": "Merge branch \u0027common/irqdomain\u0027 into sh-latest\n"
    },
    {
      "commit": "4f46f8ac80416b0e8fd3aba6a0d842205fb29140",
      "tree": "1913a661d292e74ea13e2e1af38b21ef6e5fb1bc",
      "parents": [
        "ac694dbdbc403c00e2c14d10bc7b8412cc378259"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Mon Jul 30 21:28:27 2012 +0200"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Aug 01 13:48:52 2012 +0900"
      },
      "message": "dmaengine: shdma: restore partial transfer calculation\n\nThe recent shdma driver split has mistakenly removed support for partial\nDMA transfer size calculation on forced termination. This patch restores\nit.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nAcked-by: Vinod Koul \u003cvinod.koul@linux.intel.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "2d534926205db9ffce4bbbde67cb9b2cee4b835c",
      "tree": "b906e41009b54d9a286df3454a841fd2b3f170cc",
      "parents": [
        "ac694dbdbc403c00e2c14d10bc7b8412cc378259",
        "f5a1ad057e6da5d0fc9c5677ff44797d193d3e62"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 20:44:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 20:44:03 2012 -0700"
      },
      "message": "Merge tag \u0027irqdomain-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull irqdomain changes from Grant Likely:\n \"Round of refactoring and enhancements to irq_domain infrastructure.\n  This series starts the process of simplifying irqdomain.  The ultimate\n  goal is to merge LEGACY, LINEAR and TREE mappings into a single\n  system, but had to back off from that after some last minute bugs.\n  Instead it mainly reorganizes the code and ensures that the reverse\n  map gets populated when the irq is mapped instead of the first time it\n  is looked up.\n\n  Merging of the irq_domain types is deferred to v3.7\n\n  In other news, this series adds helpers for creating static mappings\n  on a linear or tree mapping.\"\n\n* tag \u0027irqdomain-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  irqdomain: Improve diagnostics when a domain mapping fails\n  irqdomain: eliminate slow-path revmap lookups\n  irqdomain: Fix irq_create_direct_mapping() to test irq_domain type.\n  irqdomain: Eliminate dedicated radix lookup functions\n  irqdomain: Support for static IRQ mapping and association.\n  irqdomain: Always update revmap when setting up a virq\n  irqdomain: Split disassociating code into separate function\n  irq_domain: correct a minor wrong comment for linear revmap\n  irq_domain: Standardise legacy/linear domain selection\n  irqdomain: Make ops-\u003emap hook optional\n  irqdomain: Remove unnecessary test for IRQ_DOMAIN_MAP_LEGACY\n  irqdomain: Simple NUMA awareness.\n  devicetree: add helper inline for retrieving a node\u0027s full name\n"
    },
    {
      "commit": "ac2504151f5af27bbf0c0362b7da5951e05dfc43",
      "tree": "21e163290e4e35e9151d50f90e58ce8c066c2f3c",
      "parents": [
        "3d26c20bae9e97c98f7240184427d3a38515d406"
      ],
      "author": {
        "name": "Andres Salomon",
        "email": "dilinger@queued.net",
        "time": "Fri Jul 13 05:57:17 2012 -0700"
      },
      "committer": {
        "name": "Andres Salomon",
        "email": "dilinger@queued.net",
        "time": "Tue Jul 31 23:27:30 2012 -0400"
      },
      "message": "Platform: OLPC: turn EC driver into a platform_driver\n\nThe 1.75-based OLPC EC driver already does this; let\u0027s do it for all EC\ndrivers.  This gives us nice suspend/resume hooks, amongst other things.\n\nWe want to run the EC\u0027s suspend hooks later than other drivers (which may\nbe setting wakeup masks or be running EC commands).  We also want to run\nthe EC\u0027s resume hooks earlier than other drivers (which may want to run EC\ncommands).\n\nSigned-off-by: Andres Salomon \u003cdilinger@queued.net\u003e\nAcked-by: Paul Fox \u003cpgf@laptop.org\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3d26c20bae9e97c98f7240184427d3a38515d406",
      "tree": "987a82438ffe61b675cf08d33b3e11154b605f58",
      "parents": [
        "3bf9428f220911795edde453a95f9509945004e5"
      ],
      "author": {
        "name": "Andres Salomon",
        "email": "dilinger@queued.net",
        "time": "Wed Jul 11 17:40:25 2012 -0700"
      },
      "committer": {
        "name": "Andres Salomon",
        "email": "dilinger@queued.net",
        "time": "Tue Jul 31 23:27:30 2012 -0400"
      },
      "message": "Platform: OLPC: allow EC cmd to be overridden, and create a workqueue to call it\n\nThis provides a new API allows different OLPC architectures to override the\nEC driver.  x86 and ARM OLPC machines use completely different EC backends.\n\nThe olpc_ec_cmd is synchronous, and waits for the workqueue to send the\ncommand to the EC.  Multiple callers can run olpc_ec_cmd() at once, and\nthey will by serialized and sleep while only one executes on the EC at a time.\n\nWe don\u0027t provide an unregister function, as that doesn\u0027t make sense within\nthe context of OLPC machines - there\u0027s only ever 1 EC, it\u0027s critical to\nfunctionality, and it certainly not hotpluggable.\n\nSigned-off-by: Andres Salomon \u003cdilinger@queued.net\u003e\nAcked-by: Paul Fox \u003cpgf@laptop.org\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "392a325c4351339cfbf182bb5a1444df1cf65dbb",
      "tree": "90fc86d937d133f965e4f2129dede4ad6558f114",
      "parents": [
        "08843b79fb35d33859e0f8f11a7318341076e4d1"
      ],
      "author": {
        "name": "Andres Salomon",
        "email": "dilinger@queued.net",
        "time": "Tue Jul 10 19:31:51 2012 -0700"
      },
      "committer": {
        "name": "Andres Salomon",
        "email": "dilinger@queued.net",
        "time": "Tue Jul 31 23:27:29 2012 -0400"
      },
      "message": "Platform: OLPC: add a stub to drivers/platform/ for the OLPC EC driver\n\nThe OLPC EC driver has outgrown arch/x86/platform/.  It\u0027s time to both\nshare common code amongst different architectures, as well as move it out\nof arch/x86/.  The XO-1.75 is ARM-based, and the EC driver shares a lot of\ncode with the x86 code.\n\nSigned-off-by: Andres Salomon \u003cdilinger@queued.net\u003e\nAcked-by: Paul Fox \u003cpgf@laptop.org\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ac694dbdbc403c00e2c14d10bc7b8412cc378259",
      "tree": "e37328cfbeaf43716dd5914cad9179e57e84df76",
      "parents": [
        "a40a1d3d0a2fd613fdec6d89d3c053268ced76ed",
        "437ea90cc3afdca5229b41c6b1d38c4842756cb9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:25:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:25:39 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge Andrew\u0027s second set of patches:\n - MM\n - a few random fixes\n - a couple of RTC leftovers\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (120 commits)\n  rtc/rtc-88pm80x: remove unneed devm_kfree\n  rtc/rtc-88pm80x: assign ret only when rtc_register_driver fails\n  mm: hugetlbfs: close race during teardown of hugetlbfs shared page tables\n  tmpfs: distribute interleave better across nodes\n  mm: remove redundant initialization\n  mm: warn if pg_data_t isn\u0027t initialized with zero\n  mips: zero out pg_data_t when it\u0027s allocated\n  memcg: gix memory accounting scalability in shrink_page_list\n  mm/sparse: remove index_init_lock\n  mm/sparse: more checks on mem_section number\n  mm/sparse: optimize sparse_index_alloc\n  memcg: add mem_cgroup_from_css() helper\n  memcg: further prevent OOM with too many dirty pages\n  memcg: prevent OOM with too many dirty pages\n  mm: mmu_notifier: fix freed page still mapped in secondary MMU\n  mm: memcg: only check anon swapin page charges for swap cache\n  mm: memcg: only check swap cache pages for repeated charging\n  mm: memcg: split swapin charge function into private and public part\n  mm: memcg: remove needless !mm fixup to init_mm when charging\n  mm: memcg: remove unneeded shmem charge type\n  ...\n"
    },
    {
      "commit": "a40a1d3d0a2fd613fdec6d89d3c053268ced76ed",
      "tree": "ed8ea274f82e0cb645632c9b1ddcd1a6afc40bad",
      "parents": [
        "3e9a97082fa639394e905e1fc4a0a7f719ca7644",
        "89e1f7d4c66d85f42c3d52ea3866eb10cadf6153"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:17:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:17:27 2012 -0700"
      },
      "message": "Merge tag \u0027vfio-for-v3.6\u0027 of git://github.com/awilliam/linux-vfio\n\nPull VFIO core from Alex Williamson:\n \"This series includes the VFIO userspace driver interface for the 3.6\n  kernel merge window.  This driver is intended to provide a secure\n  interface for device access using IOMMU protection for applications\n  like assignment of physical devices to virtual machines.\n\n  Qemu will be the first user of this interface, enabling assignment of\n  PCI devices to Qemu guests.  This interface is intended to eventually\n  replace the x86-specific assignment mechanism currently available in\n  KVM.\n\n  This interface has the advantage of being more secure, by working with\n  IOMMU groups to ensure device isolation and providing it\u0027s own\n  filtered resource access mechanism, and also more flexible, in not\n  being x86 or KVM specific (extensions to enable POWER are already\n  working).\n\n  This driver is originally the work of Tom Lyon, but has since been\n  handed over to me and gone through a complete overhaul thanks to the\n  input from David Gibson, Ben Herrenschmidt, Chris Wright, Joerg\n  Roedel, and others.  This driver has been available in linux-next for\n  the last month.\"\n\nPaul Mackerras says:\n \"I would be glad to see it go in since we want to use it with KVM on\n  PowerPC.  If possible we\u0027d like the PowerPC bits for it to go in as\n  well.\"\n\n* tag \u0027vfio-for-v3.6\u0027 of git://github.com/awilliam/linux-vfio:\n  vfio: Add PCI device driver\n  vfio: Type1 IOMMU implementation\n  vfio: Add documentation\n  vfio: VFIO core\n"
    },
    {
      "commit": "3e9a97082fa639394e905e1fc4a0a7f719ca7644",
      "tree": "9985cfa26e0597128eae03a2ee7e4614efea571f",
      "parents": [
        "941c8726e4e737e74d418ccec3d8e7b946a65541",
        "d2e7c96af1e54b507ae2a6a7dd2baf588417a7e5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:07:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:07:42 2012 -0700"
      },
      "message": "Merge tag \u0027random_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random\n\nPull random subsystem patches from Ted Ts\u0027o:\n \"This patch series contains a major revamp of how we collect entropy\n  from interrupts for /dev/random and /dev/urandom.\n\n  The goal is to addresses weaknesses discussed in the paper \"Mining\n  your Ps and Qs: Detection of Widespread Weak Keys in Network Devices\",\n  by Nadia Heninger, Zakir Durumeric, Eric Wustrow, J.  Alex Halderman,\n  which will be published in the Proceedings of the 21st Usenix Security\n  Symposium, August 2012.  (See https://factorable.net for more\n  information and an extended version of the paper.)\"\n\nFix up trivial conflicts due to nearby changes in\ndrivers/{mfd/ab3100-core.c, usb/gadget/omap_udc.c}\n\n* tag \u0027random_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: (33 commits)\n  random: mix in architectural randomness in extract_buf()\n  dmi: Feed DMI table to /dev/random driver\n  random: Add comment to random_initialize()\n  random: final removal of IRQF_SAMPLE_RANDOM\n  um: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  sparc/ldc: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  [ARM] pxa: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  board-palmz71: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  isp1301_omap: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  pxa25x_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  omap_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  goku_udc: remove IRQF_SAMPLE_RANDOM which was commented out\n  uartlite: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  drivers: hv: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  xen-blkfront: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  n2_crypto: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  pda_power: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  i2c-pmcmsp: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  input/serio/hp_sdc.c: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  mfd: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  ...\n"
    },
    {
      "commit": "8762541f067d371320731510669e27f5cc40af38",
      "tree": "fa2890094858614a947ba70612854acde9888940",
      "parents": [
        "6dbb35b0a74b44b2a48a5373d48074c5aa69fdf5",
        "adfe1560de1c696324554fba70c92f2d7c947ff7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:47:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:47:44 2012 -0700"
      },
      "message": "Merge branch \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media\n\nPull second set of media updates from Mauro Carvalho Chehab:\n\n - radio API: add support to work with radio frequency bands\n\n - new AM/FM radio drivers: radio-shark, radio-shark2\n\n - new Remote Controller USB driver: iguanair\n\n - conversion of several drivers to the v4l2 core control framework\n\n - new board additions at existing drivers\n\n - the remaining (and vast majority of the patches) are due to\n   drivers/DocBook fixes/cleanups.\n\n* \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (154 commits)\n  [media] radio-tea5777: use library for 64bits div\n  [media] tlg2300: Declare MODULE_FIRMWARE usage\n  [media] lgs8gxx: Declare MODULE_FIRMWARE usage\n  [media] xc5000: Add MODULE_FIRMWARE statements\n  [media] s2255drv: Add MODULE_FIRMWARE statement\n  [media] dib8000: move dereference after check for NULL\n  [media] Documentation: Update cardlists\n  [media] bttv: add support for Aposonic W-DVR\n  [media] cx25821: Remove bad strcpy to read-only char*\n  [media] pms.c: remove duplicated include\n  [media] smiapp-core.c: remove duplicated include\n  [media] via-camera: pass correct format settings to sensor\n  [media] rtl2832.c: minor cleanup\n  [media] Add support for the IguanaWorks USB IR Transceiver\n  [media] Minor cleanups for MCE USB\n  [media] drivers/media/dvb/siano/smscoreapi.c: use list_for_each_entry\n  [media] Use a named union in struct v4l2_ioctl_info\n  [media] mceusb: Add Twisted Melon USB IDs\n  [media] staging/media/solo6x10: use module_pci_driver macro\n  [media] staging/media/dt3155v4l: use module_pci_driver macro\n  ...\n\nConflicts:\n\tDocumentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "6dbb35b0a74b44b2a48a5373d48074c5aa69fdf5",
      "tree": "4afb5eec521659e19c9d2343c2431054a082eb06",
      "parents": [
        "fd37ce34bd512f2b1a503f82abf8768da556a955",
        "ad0fcd4eb68059de02e1766948263c71b8a5b1dc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:45:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:45:44 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.6-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull second wave of NFS client updates from Trond Myklebust:\n\n - Patches from Bryan to allow splitting of the NFSv2/v3/v4 code into\n   separate modules.\n\n - Fix Oopses in the NFSv4 idmapper\n\n - Fix a deadlock whereby rpciod tries to allocate a new socket and ends\n   up recursing into the NFS code due to memory reclaim.\n\n - Increase the number of permitted callback connections.\n\n* tag \u0027nfs-for-3.6-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  nfs: explicitly reject LOCK_MAND flock() requests\n  nfs: increase number of permitted callback connections.\n  SUNRPC: return negative value in case rpcbind client creation error\n  NFS: Convert v4 into a module\n  NFS: Convert v3 into a module\n  NFS: Convert v2 into a module\n  NFS: Keep module parameters in the generic NFS client\n  NFS: Split out remaining NFS v4 inode functions\n  NFS: Pass super operations and xattr handlers in the nfs_subversion\n  NFS: Only initialize the ACL client in the v3 case\n  NFS: Create a try_mount rpc op\n  NFS: Remove the NFS v4 xdev mount function\n  NFS: Add version registering framework\n  NFS: Fix a number of bugs in the idmapper\n  nfs: skip commit in releasepage if we\u0027re freeing memory for fs-related reasons\n  sunrpc: clarify comments on rpc_make_runnable\n  pnfsblock: bail out partial page IO\n"
    },
    {
      "commit": "fd37ce34bd512f2b1a503f82abf8768da556a955",
      "tree": "557ff43ff5291d1704527e31293633fbc2f956d5",
      "parents": [
        "4b24ff71108164e047cf2c95990b77651163e315",
        "caacf05e5ad1abf0a2864863da4e33024bc68ec6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:43:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:43:13 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull networking update from David S. Miller:\n \"I think Eric Dumazet and I have dealt with all of the known routing\n  cache removal fallout.  Some other minor fixes all around.\n\n  1) Fix RCU of cached routes, particular of output routes which require\n     liberation via call_rcu() instead of call_rcu_bh().  From Eric\n     Dumazet.\n\n  2) Make sure we purge net device references in cached routes properly.\n\n  3) TG3 driver bug fixes from Michael Chan.\n\n  4) Fix reported \u0027expires\u0027 value in ipv6 routes, from Li Wei.\n\n  5) TUN driver ioctl leaks kernel bytes to userspace, from Mathias\n     Krause.\"\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (22 commits)\n  ipv4: Properly purge netdev references on uncached routes.\n  ipv4: Cache routes in nexthop exception entries.\n  ipv4: percpu nh_rth_output cache\n  ipv4: Restore old dst_free() behavior.\n  bridge: make port attributes const\n  ipv4: remove rt_cache_rebuild_count\n  net: ipv4: fix RCU races on dst refcounts\n  net: TCP early demux cleanup\n  tun: Fix formatting.\n  net/tun: fix ioctl() based info leaks\n  tg3: Update version to 3.124\n  tg3: Fix race condition in tg3_get_stats64()\n  tg3: Add New 5719 Read DMA workaround\n  tg3: Fix Read DMA workaround for 5719 A0.\n  tg3: Request APE_LOCK_PHY before PHY access\n  ipv6: fix incorrect route \u0027expires\u0027 value passed to userspace\n  mISDN: Bugfix only few bytes are transfered on a connection\n  seeq: use PTR_RET at init_module of driver\n  bnx2x: remove cast around the kmalloc in bnx2x_prev_mark_path\n  ipv4: clean up put_child\n  ...\n"
    },
    {
      "commit": "d833352a4338dc31295ed832a30c9ccff5c7a183",
      "tree": "17d0da8ace1daaabe465304bca861c38e85216b5",
      "parents": [
        "09c231cb8bfdc35e7d896850d34440b8553b084f"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:46:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:50 2012 -0700"
      },
      "message": "mm: hugetlbfs: close race during teardown of hugetlbfs shared page tables\n\nIf a process creates a large hugetlbfs mapping that is eligible for page\ntable sharing and forks heavily with children some of whom fault and\nothers which destroy the mapping then it is possible for page tables to\nget corrupted.  Some teardowns of the mapping encounter a \"bad pmd\" and\noutput a message to the kernel log.  The final teardown will trigger a\nBUG_ON in mm/filemap.c.\n\nThis was reproduced in 3.4 but is known to have existed for a long time\nand goes back at least as far as 2.6.37.  It was probably was introduced\nin 2.6.20 by [39dde65c: shared page table for hugetlb page].  The messages\nlook like this;\n\n[  ..........] Lots of bad pmd messages followed by this\n[  127.164256] mm/memory.c:391: bad pmd ffff880412e04fe8(80000003de4000e7).\n[  127.164257] mm/memory.c:391: bad pmd ffff880412e04ff0(80000003de6000e7).\n[  127.164258] mm/memory.c:391: bad pmd ffff880412e04ff8(80000003de0000e7).\n[  127.186778] ------------[ cut here ]------------\n[  127.186781] kernel BUG at mm/filemap.c:134!\n[  127.186782] invalid opcode: 0000 [#1] SMP\n[  127.186783] CPU 7\n[  127.186784] Modules linked in: af_packet cpufreq_conservative cpufreq_userspace cpufreq_powersave acpi_cpufreq mperf ext3 jbd dm_mod coretemp crc32c_intel usb_storage ghash_clmulni_intel aesni_intel i2c_i801 r8169 mii uas sr_mod cdrom sg iTCO_wdt iTCO_vendor_support shpchp serio_raw cryptd aes_x86_64 e1000e pci_hotplug dcdbas aes_generic container microcode ext4 mbcache jbd2 crc16 sd_mod crc_t10dif i915 drm_kms_helper drm i2c_algo_bit ehci_hcd ahci libahci usbcore rtc_cmos usb_common button i2c_core intel_agp video intel_gtt fan processor thermal thermal_sys hwmon ata_generic pata_atiixp libata scsi_mod\n[  127.186801]\n[  127.186802] Pid: 9017, comm: hugetlbfs-test Not tainted 3.4.0-autobuild #53 Dell Inc. OptiPlex 990/06D7TR\n[  127.186804] RIP: 0010:[\u003cffffffff810ed6ce\u003e]  [\u003cffffffff810ed6ce\u003e] __delete_from_page_cache+0x15e/0x160\n[  127.186809] RSP: 0000:ffff8804144b5c08  EFLAGS: 00010002\n[  127.186810] RAX: 0000000000000001 RBX: ffffea000a5c9000 RCX: 00000000ffffffc0\n[  127.186811] RDX: 0000000000000000 RSI: 0000000000000009 RDI: ffff88042dfdad00\n[  127.186812] RBP: ffff8804144b5c18 R08: 0000000000000009 R09: 0000000000000003\n[  127.186813] R10: 0000000000000000 R11: 000000000000002d R12: ffff880412ff83d8\n[  127.186814] R13: ffff880412ff83d8 R14: 0000000000000000 R15: ffff880412ff83d8\n[  127.186815] FS:  00007fe18ed2c700(0000) GS:ffff88042dce0000(0000) knlGS:0000000000000000\n[  127.186816] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n[  127.186817] CR2: 00007fe340000503 CR3: 0000000417a14000 CR4: 00000000000407e0\n[  127.186818] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n[  127.186819] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n[  127.186820] Process hugetlbfs-test (pid: 9017, threadinfo ffff8804144b4000, task ffff880417f803c0)\n[  127.186821] Stack:\n[  127.186822]  ffffea000a5c9000 0000000000000000 ffff8804144b5c48 ffffffff810ed83b\n[  127.186824]  ffff8804144b5c48 000000000000138a 0000000000001387 ffff8804144b5c98\n[  127.186825]  ffff8804144b5d48 ffffffff811bc925 ffff8804144b5cb8 0000000000000000\n[  127.186827] Call Trace:\n[  127.186829]  [\u003cffffffff810ed83b\u003e] delete_from_page_cache+0x3b/0x80\n[  127.186832]  [\u003cffffffff811bc925\u003e] truncate_hugepages+0x115/0x220\n[  127.186834]  [\u003cffffffff811bca43\u003e] hugetlbfs_evict_inode+0x13/0x30\n[  127.186837]  [\u003cffffffff811655c7\u003e] evict+0xa7/0x1b0\n[  127.186839]  [\u003cffffffff811657a3\u003e] iput_final+0xd3/0x1f0\n[  127.186840]  [\u003cffffffff811658f9\u003e] iput+0x39/0x50\n[  127.186842]  [\u003cffffffff81162708\u003e] d_kill+0xf8/0x130\n[  127.186843]  [\u003cffffffff81162812\u003e] dput+0xd2/0x1a0\n[  127.186845]  [\u003cffffffff8114e2d0\u003e] __fput+0x170/0x230\n[  127.186848]  [\u003cffffffff81236e0e\u003e] ? rb_erase+0xce/0x150\n[  127.186849]  [\u003cffffffff8114e3ad\u003e] fput+0x1d/0x30\n[  127.186851]  [\u003cffffffff81117db7\u003e] remove_vma+0x37/0x80\n[  127.186853]  [\u003cffffffff81119182\u003e] do_munmap+0x2d2/0x360\n[  127.186855]  [\u003cffffffff811cc639\u003e] sys_shmdt+0xc9/0x170\n[  127.186857]  [\u003cffffffff81410a39\u003e] system_call_fastpath+0x16/0x1b\n[  127.186858] Code: 0f 1f 44 00 00 48 8b 43 08 48 8b 00 48 8b 40 28 8b b0 40 03 00 00 85 f6 0f 88 df fe ff ff 48 89 df e8 e7 cb 05 00 e9 d2 fe ff ff \u003c0f\u003e 0b 55 83 e2 fd 48 89 e5 48 83 ec 30 48 89 5d d8 4c 89 65 e0\n[  127.186868] RIP  [\u003cffffffff810ed6ce\u003e] __delete_from_page_cache+0x15e/0x160\n[  127.186870]  RSP \u003cffff8804144b5c08\u003e\n[  127.186871] ---[ end trace 7cbac5d1db69f426 ]---\n\nThe bug is a race and not always easy to reproduce.  To reproduce it I was\ndoing the following on a single socket I7-based machine with 16G of RAM.\n\n$ hugeadm --pool-pages-max DEFAULT:13G\n$ echo $((18*1048576*1024)) \u003e /proc/sys/kernel/shmmax\n$ echo $((18*1048576*1024)) \u003e /proc/sys/kernel/shmall\n$ for i in `seq 1 9000`; do ./hugetlbfs-test; done\n\nOn my particular machine, it usually triggers within 10 minutes but\nenabling debug options can change the timing such that it never hits.\nOnce the bug is triggered, the machine is in trouble and needs to be\nrebooted.  The machine will respond but processes accessing proc like \"ps\naux\" will hang due to the BUG_ON.  shutdown will also hang and needs a\nhard reset or a sysrq-b.\n\nThe basic problem is a race between page table sharing and teardown.  For\nthe most part page table sharing depends on i_mmap_mutex.  In some cases,\nit is also taking the mm-\u003epage_table_lock for the PTE updates but with\nshared page tables, it is the i_mmap_mutex that is more important.\n\nUnfortunately it appears to be also insufficient. Consider the following\nsituation\n\nProcess A\t\t\t\t\tProcess B\n---------\t\t\t\t\t---------\nhugetlb_fault\t\t\t\t\tshmdt\n  \t\t\t\t\t\tLockWrite(mmap_sem)\n    \t\t\t\t\t\t  do_munmap\n\t\t\t\t\t\t    unmap_region\n\t\t\t\t\t\t      unmap_vmas\n\t\t\t\t\t\t        unmap_single_vma\n\t\t\t\t\t\t          unmap_hugepage_range\n      \t\t\t\t\t\t            Lock(i_mmap_mutex)\n\t\t\t\t\t\t\t    Lock(mm-\u003epage_table_lock)\n\t\t\t\t\t\t\t    huge_pmd_unshare/unmap tables \u003c--- (1)\n\t\t\t\t\t\t\t    Unlock(mm-\u003epage_table_lock)\n      \t\t\t\t\t\t            Unlock(i_mmap_mutex)\n  huge_pte_alloc\t\t\t\t      ...\n    Lock(i_mmap_mutex)\t\t\t\t      ...\n    vma_prio_walk, find svma, spte\t\t      ...\n    Lock(mm-\u003epage_table_lock)\t\t\t      ...\n    share spte\t\t\t\t\t      ...\n    Unlock(mm-\u003epage_table_lock)\t\t\t      ...\n    Unlock(i_mmap_mutex)\t\t\t      ...\n  hugetlb_no_page\t\t\t\t\t\t\t\t\t  \u003c--- (2)\n\t\t\t\t\t\t      free_pgtables\n\t\t\t\t\t\t        unlink_file_vma\n\t\t\t\t\t\t\thugetlb_free_pgd_range\n\t\t\t\t\t\t    remove_vma_list\n\nIn this scenario, it is possible for Process A to share page tables with\nProcess B that is trying to tear them down.  The i_mmap_mutex on its own\ndoes not prevent Process A walking Process B\u0027s page tables.  At (1) above,\nthe page tables are not shared yet so it unmaps the PMDs.  Process A sets\nup page table sharing and at (2) faults a new entry.  Process B then trips\nup on it in free_pgtables.\n\nThis patch fixes the problem by adding a new function\n__unmap_hugepage_range_final that is only called when the VMA is about to\nbe destroyed.  This function clears VM_MAYSHARE during\nunmap_hugepage_range() under the i_mmap_mutex.  This makes the VMA\nineligible for sharing and avoids the race.  Superficially this looks like\nit would then be vunerable to truncate and madvise issues but hugetlbfs\nhas its own truncate handlers so does not use unmap_mapping_range() and\ndoes not support madvise(DONTNEED).\n\nThis should be treated as a -stable candidate if it is merged.\n\nTest program is as follows. The test case was mostly written by Michal\nHocko with a few minor changes to reproduce this bug.\n\n\u003d\u003d\u003d\u003d CUT HERE \u003d\u003d\u003d\u003d\n\nstatic size_t huge_page_size \u003d (2UL \u003c\u003c 20);\nstatic size_t nr_huge_page_A \u003d 512;\nstatic size_t nr_huge_page_B \u003d 5632;\n\nunsigned int get_random(unsigned int max)\n{\n\tstruct timeval tv;\n\n\tgettimeofday(\u0026tv, NULL);\n\tsrandom(tv.tv_usec);\n\treturn random() % max;\n}\n\nstatic void play(void *addr, size_t size)\n{\n\tunsigned char *start \u003d addr,\n\t\t      *end \u003d start + size,\n\t\t      *a;\n\tstart +\u003d get_random(size/2);\n\n\t/* we could itterate on huge pages but let\u0027s give it more time. */\n\tfor (a \u003d start; a \u003c end; a +\u003d 4096)\n\t\t*a \u003d 0;\n}\n\nint main(int argc, char **argv)\n{\n\tkey_t key \u003d IPC_PRIVATE;\n\tsize_t sizeA \u003d nr_huge_page_A * huge_page_size;\n\tsize_t sizeB \u003d nr_huge_page_B * huge_page_size;\n\tint shmidA, shmidB;\n\tvoid *addrA \u003d NULL, *addrB \u003d NULL;\n\tint nr_children \u003d 300, n \u003d 0;\n\n\tif ((shmidA \u003d shmget(key, sizeA, IPC_CREAT|SHM_HUGETLB|0660)) \u003d\u003d -1) {\n\t\tperror(\"shmget:\");\n\t\treturn 1;\n\t}\n\n\tif ((addrA \u003d shmat(shmidA, addrA, SHM_R|SHM_W)) \u003d\u003d (void *)-1UL) {\n\t\tperror(\"shmat\");\n\t\treturn 1;\n\t}\n\tif ((shmidB \u003d shmget(key, sizeB, IPC_CREAT|SHM_HUGETLB|0660)) \u003d\u003d -1) {\n\t\tperror(\"shmget:\");\n\t\treturn 1;\n\t}\n\n\tif ((addrB \u003d shmat(shmidB, addrB, SHM_R|SHM_W)) \u003d\u003d (void *)-1UL) {\n\t\tperror(\"shmat\");\n\t\treturn 1;\n\t}\n\nfork_child:\n\tswitch(fork()) {\n\t\tcase 0:\n\t\t\tswitch (n%3) {\n\t\t\tcase 0:\n\t\t\t\tplay(addrA, sizeA);\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tplay(addrB, sizeB);\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase -1:\n\t\t\tperror(\"fork:\");\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tif (++n \u003c nr_children)\n\t\t\t\tgoto fork_child;\n\t\t\tplay(addrA, sizeA);\n\t\t\tbreak;\n\t}\n\tshmdt(addrA);\n\tshmdt(addrB);\n\tdo {\n\t\twait(NULL);\n\t} while (--n \u003e 0);\n\tshmctl(shmidA, IPC_RMID, NULL);\n\tshmctl(shmidB, IPC_RMID, NULL);\n\treturn 0;\n}\n\n[akpm@linux-foundation.org: name the declaration\u0027s args, fix CONFIG_HUGETLBFS\u003dn build]\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\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": "6527af5d1bea219d64095a5e30c1b1e0868aae16",
      "tree": "99f36cf0b3744e5d7cdaf52c22a3e9897e17f7bb",
      "parents": [
        "88fdf75d1bb51d85ba00c466391770056d44bc03"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Tue Jul 31 16:46:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:50 2012 -0700"
      },
      "message": "mm: remove redundant initialization\n\npg_data_t is zeroed before reaching free_area_init_core(), so remove the\nnow unnecessary initializations.\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0030f535a5cf9b1841d2088c10a0b2f8f2987460",
      "tree": "5a71a5057fb0d3e1b5f22c550c4374ea709ac3bc",
      "parents": [
        "737449236240e30a7bbe99f4d5586b8ed1416763"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jul 31 16:45:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:48 2012 -0700"
      },
      "message": "mm: memcg: fix compaction/migration failing due to memcg limits\n\nCompaction (and page migration in general) can currently be hindered\nthrough pages being owned by memory cgroups that are at their limits and\nunreclaimable.\n\nThe reason is that the replacement page is being charged against the limit\nwhile the page being replaced is also still charged.  But this seems\nunnecessary, given that only one of the two pages will still be in use\nafter migration finishes.\n\nThis patch changes the memcg migration sequence so that the replacement\npage is not charged.  Whatever page is still in use after successful or\nfailed migration gets to keep the charge of the page that was going to be\nreplaced.\n\nThe replacement page will still show up temporarily in the rss/cache\nstatistics, this can be fixed in a later patch as it\u0027s less urgent.\n\nReported-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Wanpeng Li \u003cliwp.linux@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a564b8f0398636ba30b07c0eaebdef7ff7837249",
      "tree": "10478aa5cfb2a3696db34618a479413b358c3831",
      "parents": [
        "29418aa4bd487c82016733ef5c6a06d656ed3c7d"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:45:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:48 2012 -0700"
      },
      "message": "nfs: enable swap on NFS\n\nImplement the new swapfile a_ops for NFS and hook up -\u003edirect_IO.  This\nwill set the NFS socket to SOCK_MEMALLOC and run socket reconnect under\nPF_MEMALLOC as well as reset SOCK_MEMALLOC before engaging the protocol\n-\u003econnect() method.\n\nPF_MEMALLOC should allow the allocation of struct socket and related\nobjects and the early (re)setting of SOCK_MEMALLOC should allow us to\nreceive the packets required for the TCP connection buildup.\n\n[jlayton@redhat.com: Restore PF_MEMALLOC task flags in all cases]\n[dfeng@redhat.com: Fix handling of multiple swap files]\n[a.p.zijlstra@chello.nl: Original patch]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Xiaotian Feng \u003cdfeng@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": "5a178119b0fbe37f7dfb602b37df9cc4b1dc9d71",
      "tree": "22ddd286aac202ccb8c063f02792fc9c90a0b8da",
      "parents": [
        "a509bc1a9e487d952d9404318f7f990166ab57a7"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:45:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:47 2012 -0700"
      },
      "message": "mm: add support for direct_IO to highmem pages\n\nThe patch \"mm: add support for a filesystem to activate swap files and use\ndirect_IO for writing swap pages\" added support for using direct_IO to\nwrite swap pages but it is insufficient for highmem pages.\n\nTo support highmem pages, this patch kmaps() the page before calling the\ndirect_IO() handler.  As direct_IO deals with virtual addresses an\nadditional helper is necessary for get_kernel_pages() to lookup the struct\npage for a kmap virtual address.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Xiaotian Feng \u003cdfeng@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": "a509bc1a9e487d952d9404318f7f990166ab57a7",
      "tree": "40a8f8a20877da8a5b855cfbc3813c0874605093",
      "parents": [
        "62c230bc1790923a1b35da03596a68a6c9b5b100"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:57 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:47 2012 -0700"
      },
      "message": "mm: swap: implement generic handler for swap_activate\n\nThe version of swap_activate introduced is sufficient for swap-over-NFS\nbut would not provide enough information to implement a generic handler.\nThis patch shuffles things slightly to ensure the same information is\navailable for aops-\u003eswap_activate() as is available to the core.\n\nNo functionality change.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Xiaotian Feng \u003cdfeng@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": "62c230bc1790923a1b35da03596a68a6c9b5b100",
      "tree": "46b300a00929087627e029b0f4d53e486a97ba7f",
      "parents": [
        "18022c5d8627a7a9ba8097a0f238b513fae6f5b8"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:47 2012 -0700"
      },
      "message": "mm: add support for a filesystem to activate swap files and use direct_IO for writing swap pages\n\nCurrently swapfiles are managed entirely by the core VM by using -\u003ebmap to\nallocate space and write to the blocks directly.  This effectively ensures\nthat the underlying blocks are allocated and avoids the need for the swap\nsubsystem to locate what physical blocks store offsets within a file.\n\nIf the swap subsystem is to use the filesystem information to locate the\nblocks, it is critical that information such as block groups, block\nbitmaps and the block descriptor table that map the swap file were\nresident in memory.  This patch adds address_space_operations that the VM\ncan call when activating or deactivating swap backed by a file.\n\n  int swap_activate(struct file *);\n  int swap_deactivate(struct file *);\n\nThe -\u003eswap_activate() method is used to communicate to the file that the\nVM relies on it, and the address_space should take adequate measures such\nas reserving space in the underlying device, reserving memory for mempools\nand pinning information such as the block descriptor table in memory.  The\n-\u003eswap_deactivate() method is called on sys_swapoff() if -\u003eswap_activate()\nreturned success.\n\nAfter a successful swapfile -\u003eswap_activate, the swapfile is marked\nSWP_FILE and swapper_space.a_ops will proxy to\nsis-\u003eswap_file-\u003ef_mappings-\u003ea_ops using -\u003edirect_io to write swapcache\npages and -\u003ereadpage to read.\n\nIt is perfectly possible that direct_IO be used to read the swap pages but\nit is an unnecessary complication.  Similarly, it is possible that\n-\u003ewritepage be used instead of direct_io to write the pages but filesystem\ndevelopers have stated that calling writepage from the VM is undesirable\nfor a variety of reasons and using direct_IO opens up the possibility of\nwriting back batches of swap pages in the future.\n\n[a.p.zijlstra@chello.nl: Original patch]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Xiaotian Feng \u003cdfeng@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": "18022c5d8627a7a9ba8097a0f238b513fae6f5b8",
      "tree": "57e0d0ec6a5369c56bd00957eb9c0e1220e62917",
      "parents": [
        "f981c5950fa85916ba49bea5d9a7a5078f47e569"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:47 2012 -0700"
      },
      "message": "mm: add get_kernel_page[s] for pinning of kernel addresses for I/O\n\nThis patch adds two new APIs get_kernel_pages() and get_kernel_page() that\nmay be used to pin a vector of kernel addresses for IO.  The initial user\nis expected to be NFS for allowing pages to be written to swap using\naops-\u003edirect_IO().  Strictly speaking, swap-over-NFS only needs to pin one\npage for IO but it makes sense to express the API in terms of a vector and\nadd a helper for pinning single pages.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nCc: Mark Salter \u003cmsalter@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": "f981c5950fa85916ba49bea5d9a7a5078f47e569",
      "tree": "e742598755e57e1bbed06dc90b05fe6e13091236",
      "parents": [
        "6290c2c439732727899405f39fb76c2f5585b707"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:47 2012 -0700"
      },
      "message": "mm: methods for teaching filesystems about PG_swapcache pages\n\nIn order to teach filesystems to handle swap cache pages, three new page\nfunctions are introduced:\n\n  pgoff_t page_file_index(struct page *);\n  loff_t page_file_offset(struct page *);\n  struct address_space *page_file_mapping(struct page *);\n\npage_file_index() - gives the offset of this page in the file in\nPAGE_CACHE_SIZE blocks.  Like page-\u003eindex is for mapped pages, this\nfunction also gives the correct index for PG_swapcache pages.\n\npage_file_offset() - uses page_file_index(), so that it will give the\nexpected result, even for PG_swapcache pages.\n\npage_file_mapping() - gives the mapping backing the actual page; that is\nfor swap cache pages it will give swap_file-\u003ef_mapping.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Xiaotian Feng \u003cdfeng@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": "c76562b6709fee5eff8a6a779be41c0bce661fd7",
      "tree": "18e4a3c71b6d859cc58b7d1156bd1d7bfd1d6a5c",
      "parents": [
        "68243e76ee343d63c6cf76978588a885951e2818"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:47 2012 -0700"
      },
      "message": "netvm: prevent a stream-specific deadlock\n\nThis patch series is based on top of \"Swap-over-NBD without deadlocking\nv15\" as it depends on the same reservation of PF_MEMALLOC reserves logic.\n\nWhen a user or administrator requires swap for their application, they\ncreate a swap partition and file, format it with mkswap and activate it\nwith swapon.  In diskless systems this is not an option so if swap if\nrequired then swapping over the network is considered.  The two likely\nscenarios are when blade servers are used as part of a cluster where the\nform factor or maintenance costs do not allow the use of disks and thin\nclients.\n\nThe Linux Terminal Server Project recommends the use of the Network Block\nDevice (NBD) for swap but this is not always an option.  There is no\nguarantee that the network attached storage (NAS) device is running Linux\nor supports NBD.  However, it is likely that it supports NFS so there are\nusers that want support for swapping over NFS despite any performance\nconcern.  Some distributions currently carry patches that support swapping\nover NFS but it would be preferable to support it in the mainline kernel.\n\nPatch 1 avoids a stream-specific deadlock that potentially affects TCP.\n\nPatch 2 is a small modification to SELinux to avoid using PFMEMALLOC\n\treserves.\n\nPatch 3 adds three helpers for filesystems to handle swap cache pages.\n\tFor example, page_file_mapping() returns page-\u003emapping for\n\tfile-backed pages and the address_space of the underlying\n\tswap file for swap cache pages.\n\nPatch 4 adds two address_space_operations to allow a filesystem\n\tto pin all metadata relevant to a swapfile in memory. Upon\n\tsuccessful activation, the swapfile is marked SWP_FILE and\n\tthe address space operation -\u003edirect_IO is used for writing\n\tand -\u003ereadpage for reading in swap pages.\n\nPatch 5 notes that patch 3 is bolting\n\tfilesystem-specific-swapfile-support onto the side and that\n\tthe default handlers have different information to what\n\tis available to the filesystem. This patch refactors the\n\tcode so that there are generic handlers for each of the new\n\taddress_space operations.\n\nPatch 6 adds an API to allow a vector of kernel addresses to be\n\ttranslated to struct pages and pinned for IO.\n\nPatch 7 adds support for using highmem pages for swap by kmapping\n\tthe pages before calling the direct_IO handler.\n\nPatch 8 updates NFS to use the helpers from patch 3 where necessary.\n\nPatch 9 avoids setting PF_private on PG_swapcache pages within NFS.\n\nPatch 10 implements the new swapfile-related address_space operations\n\tfor NFS and teaches the direct IO handler how to manage\n\tkernel addresses.\n\nPatch 11 prevents page allocator recursions in NFS by using GFP_NOIO\n\twhere appropriate.\n\nPatch 12 fixes a NULL pointer dereference that occurs when using\n\tswap-over-NFS.\n\nWith the patches applied, it is possible to mount a swapfile that is on an\nNFS filesystem.  Swap performance is not great with a swap stress test\ntaking roughly twice as long to complete than if the swap device was\nbacked by NBD.\n\nThis patch: netvm: prevent a stream-specific deadlock\n\nIt could happen that all !SOCK_MEMALLOC sockets have buffered so much data\nthat we\u0027re over the global rmem limit.  This will prevent SOCK_MEMALLOC\nbuffers from receiving data, which will prevent userspace from running,\nwhich is needed to reduce the buffered data.\n\nFix this by exempting the SOCK_MEMALLOC sockets from the rmem limit.  Once\nthis change it applied, it is important that sockets that set\nSOCK_MEMALLOC do not clear the flag until the socket is being torn down.\nIf this happens, a warning is generated and the tokens reclaimed to avoid\naccounting errors until the bug is fixed.\n\n[davem@davemloft.net: Warning about clearing SOCK_MEMALLOC]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@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": "68243e76ee343d63c6cf76978588a885951e2818",
      "tree": "e6ec975265272c81e03312e1ebc1c27fd6fdfa19",
      "parents": [
        "5515061d22f0f9976ae7815864bfd22042d36848"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "mm: account for the number of times direct reclaimers get throttled\n\nUnder significant pressure when writing back to network-backed storage,\ndirect reclaimers may get throttled.  This is expected to be a short-lived\nevent and the processes get woken up again but processes do get stalled.\nThis patch counts how many times such stalling occurs.  It\u0027s up to the\nadministrator whether to reduce these stalls by increasing\nmin_free_kbytes.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5515061d22f0f9976ae7815864bfd22042d36848",
      "tree": "13b53a29166f19eb864e96b3b58539a207e5fa2f",
      "parents": [
        "7f338fe4540b1d0600b02314c7d885fd358e9eca"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "mm: throttle direct reclaimers if PF_MEMALLOC reserves are low and swap is backed by network storage\n\nIf swap is backed by network storage such as NBD, there is a risk that a\nlarge number of reclaimers can hang the system by consuming all\nPF_MEMALLOC reserves.  To avoid these hangs, the administrator must tune\nmin_free_kbytes in advance which is a bit fragile.\n\nThis patch throttles direct reclaimers if half the PF_MEMALLOC reserves\nare in use.  If the system is routinely getting throttled the system\nadministrator can increase min_free_kbytes so degradation is smoother but\nthe system will keep running.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4b9e3558508980fc0cd161a545ffb55a1f13ee9",
      "tree": "abb2ab54f4b201b1cbdaf181ec16912c3dd889eb",
      "parents": [
        "0614002bb5f7411e61ffa0dfe5be1f2c84df3da3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: set PF_MEMALLOC as appropriate during SKB processing\n\nIn order to make sure pfmemalloc packets receive all memory needed to\nproceed, ensure processing of pfmemalloc SKBs happens under PF_MEMALLOC.\nThis is limited to a subset of protocols that are expected to be used for\nwriting to swap.  Taps are not allowed to use PF_MEMALLOC as these are\nexpected to communicate with userspace processes which could be paged out.\n\n[a.p.zijlstra@chello.nl: Ideas taken from various patches]\n[jslaby@suse.cz: Lock imbalance fix]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0614002bb5f7411e61ffa0dfe5be1f2c84df3da3",
      "tree": "f061bc27a010cec343cbd82eefd7b8724e52f146",
      "parents": [
        "c48a11c7ad2623b99bbd6859b0b4234e7f11176f"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: propagate page-\u003epfmemalloc from skb_alloc_page to skb\n\nThe skb-\u003epfmemalloc flag gets set to true iff during the slab allocation\nof data in __alloc_skb that the the PFMEMALLOC reserves were used.  If\npage splitting is used, it is possible that pages will be allocated from\nthe PFMEMALLOC reserve without propagating this information to the skb.\nThis patch propagates page-\u003epfmemalloc from pages allocated for fragments\nto the skb.\n\nIt works by reintroducing and expanding the skb_alloc_page() API to take\nan skb.  If the page was allocated from pfmemalloc reserves, it is\nautomatically copied.  If the driver allocates the page before the skb, it\nshould call skb_propagate_pfmemalloc() after the skb is allocated to\nensure the flag is copied properly.\n\nFailure to do so is not critical.  The resulting driver may perform slower\nif it is used for swap-over-NBD or swap-over-NFS but it should not result\nin failure.\n\n[davem@davemloft.net: API rename and consistency]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c48a11c7ad2623b99bbd6859b0b4234e7f11176f",
      "tree": "5937aa7e5679761d516431de3be4cb9c4f81f350",
      "parents": [
        "c93bdd0e03e848555d144eb44a1f275b871a8dd5"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: propagate page-\u003epfmemalloc to skb\n\nThe skb-\u003epfmemalloc flag gets set to true iff during the slab allocation\nof data in __alloc_skb that the the PFMEMALLOC reserves were used.  If the\npacket is fragmented, it is possible that pages will be allocated from the\nPFMEMALLOC reserve without propagating this information to the skb.  This\npatch propagates page-\u003epfmemalloc from pages allocated for fragments to\nthe skb.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c93bdd0e03e848555d144eb44a1f275b871a8dd5",
      "tree": "8aff3bc2b9ff9f32e51040a7652bfb31257db626",
      "parents": [
        "7cb0240492caea2f6467f827313478f41877e6ef"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: allow skb allocation to use PFMEMALLOC reserves\n\nChange the skb allocation API to indicate RX usage and use this to fall\nback to the PFMEMALLOC reserve when needed.  SKBs allocated from the\nreserve are tagged in skb-\u003epfmemalloc.  If an SKB is allocated from the\nreserve and the socket is later found to be unrelated to page reclaim, the\npacket is dropped so that the memory remains available for page reclaim.\nNetwork protocols are expected to recover from this packet loss.\n\n[a.p.zijlstra@chello.nl: Ideas taken from various patches]\n[davem@davemloft.net: Use static branches, coding style corrections]\n[sebastian@breakpoint.cc: Avoid unnecessary cast, fix !CONFIG_NET build]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7cb0240492caea2f6467f827313478f41877e6ef",
      "tree": "4836f7c2c07ed199e3122ea70bedf34f048ecd81",
      "parents": [
        "99a1dec70d5acbd8c6b3928cdebb4a2d1da676c8"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: allow the use of __GFP_MEMALLOC by specific sockets\n\nAllow specific sockets to be tagged SOCK_MEMALLOC and use __GFP_MEMALLOC\nfor their allocations.  These sockets will be able to go below watermarks\nand allocate from the emergency reserve.  Such sockets are to be used to\nservice the VM (iow.  to swap over).  They must be handled kernel side,\nexposing such a socket to user-space is a bug.\n\nThere is a risk that the reserves be depleted so for now, the\nadministrator is responsible for increasing min_free_kbytes as necessary\nto prevent deadlock for their workloads.\n\n[a.p.zijlstra@chello.nl: Original patches]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99a1dec70d5acbd8c6b3928cdebb4a2d1da676c8",
      "tree": "ac61a8b479065fa3ed3fdddf17e91366dcddcea5",
      "parents": [
        "183f6371aac2a5496a8ef2b0b0a68562652c3cdb"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "net: introduce sk_gfp_atomic() to allow addition of GFP flags depending on the individual socket\n\nIntroduce sk_gfp_atomic(), this function allows to inject sock specific\nflags to each sock related allocation.  It is only used on allocation\npaths that may be required for writing pages back to network storage.\n\n[davem@davemloft.net: Use sk_gfp_atomic only when necessary]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "907aed48f65efeecf91575397e3d79335d93a466",
      "tree": "8e06d29e71888f65a7217880c55472125d1b88d4",
      "parents": [
        "b37f1dd0f543d9714f96c2f9b9f74f7bdfdfdf31"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:45 2012 -0700"
      },
      "message": "mm: allow PF_MEMALLOC from softirq context\n\nThis is needed to allow network softirq packet processing to make use of\nPF_MEMALLOC.\n\nCurrently softirq context cannot use PF_MEMALLOC due to it not being\nassociated with a task, and therefore not having task flags to fiddle with\n- thus the gfp to alloc flag mapping ignores the task flags when in\ninterrupts (hard or soft) context.\n\nAllowing softirqs to make use of PF_MEMALLOC therefore requires some\ntrickery.  This patch borrows the task flags from whatever process happens\nto be preempted by the softirq.  It then modifies the gfp to alloc flags\nmapping to not exclude task flags in softirq context, and modify the\nsoftirq code to save, clear and restore the PF_MEMALLOC flag.\n\nThe save and clear, ensures the preempted task\u0027s PF_MEMALLOC flag doesn\u0027t\nleak into the softirq.  The restore ensures a softirq\u0027s PF_MEMALLOC flag\ncannot leak back into the preempted process.  This should be safe due to\nthe following reasons\n\nSoftirqs can run on multiple CPUs sure but the same task should not be\n\texecuting the same softirq code. Neither should the softirq\n\thandler be preempted by any other softirq handler so the flags\n\tshould not leak to an unrelated softirq.\n\nSoftirqs re-enable hardware interrupts in __do_softirq() so can be\n\tpreempted by hardware interrupts so PF_MEMALLOC is inherited\n\tby the hard IRQ. However, this is similar to a process in\n\treclaim being preempted by a hardirq. While PF_MEMALLOC is\n\tset, gfp_to_alloc_flags() distinguishes between hard and\n\tsoft irqs and avoids giving a hardirq the ALLOC_NO_WATERMARKS\n\tflag.\n\nIf the softirq is deferred to ksoftirq then its flags may be used\n        instead of a normal tasks but as the softirq cannot be preempted,\n        the PF_MEMALLOC flag does not leak to other code by accident.\n\n[davem@davemloft.net: Document why PF_MEMALLOC is safe]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b37f1dd0f543d9714f96c2f9b9f74f7bdfdfdf31",
      "tree": "4d01913bd950d60c65605cd14e0ff88b74f5f716",
      "parents": [
        "5091b74a95d447e34530e713a8971450a45498b3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:45 2012 -0700"
      },
      "message": "mm: introduce __GFP_MEMALLOC to allow access to emergency reserves\n\n__GFP_MEMALLOC will allow the allocation to disregard the watermarks, much\nlike PF_MEMALLOC.  It allows one to pass along the memalloc state in\nobject related allocation flags as opposed to task related flags, such as\nsk-\u003esk_allocation.  This removes the need for ALLOC_PFMEMALLOC as callers\nusing __GFP_MEMALLOC can get the ALLOC_NO_WATERMARK flag which is now\nenough to identify allocations related to page reclaim.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "072bb0aa5e062902968c5c1007bba332c7820cf4",
      "tree": "1b4a602c16b07a41484c0664d1936848387f0916",
      "parents": [
        "702d1a6e0766d45642c934444fd41f658d251305"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:43:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:45 2012 -0700"
      },
      "message": "mm: sl[au]b: add knowledge of PFMEMALLOC reserve pages\n\nWhen a user or administrator requires swap for their application, they\ncreate a swap partition and file, format it with mkswap and activate it\nwith swapon.  Swap over the network is considered as an option in diskless\nsystems.  The two likely scenarios are when blade servers are used as part\nof a cluster where the form factor or maintenance costs do not allow the\nuse of disks and thin clients.\n\nThe Linux Terminal Server Project recommends the use of the Network Block\nDevice (NBD) for swap according to the manual at\nhttps://sourceforge.net/projects/ltsp/files/Docs-Admin-Guide/LTSPManual.pdf/download\nThere is also documentation and tutorials on how to setup swap over NBD at\nplaces like https://help.ubuntu.com/community/UbuntuLTSP/EnableNBDSWAP The\nnbd-client also documents the use of NBD as swap.  Despite this, the fact\nis that a machine using NBD for swap can deadlock within minutes if swap\nis used intensively.  This patch series addresses the problem.\n\nThe core issue is that network block devices do not use mempools like\nnormal block devices do.  As the host cannot control where they receive\npackets from, they cannot reliably work out in advance how much memory\nthey might need.  Some years ago, Peter Zijlstra developed a series of\npatches that supported swap over an NFS that at least one distribution is\ncarrying within their kernels.  This patch series borrows very heavily\nfrom Peter\u0027s work to support swapping over NBD as a pre-requisite to\nsupporting swap-over-NFS.  The bulk of the complexity is concerned with\npreserving memory that is allocated from the PFMEMALLOC reserves for use\nby the network layer which is needed for both NBD and NFS.\n\nPatch 1 adds knowledge of the PFMEMALLOC reserves to SLAB and SLUB to\n\tpreserve access to pages allocated under low memory situations\n\tto callers that are freeing memory.\n\nPatch 2 optimises the SLUB fast path to avoid pfmemalloc checks\n\nPatch 3 introduces __GFP_MEMALLOC to allow access to the PFMEMALLOC\n\treserves without setting PFMEMALLOC.\n\nPatch 4 opens the possibility for softirqs to use PFMEMALLOC reserves\n\tfor later use by network packet processing.\n\nPatch 5 only sets page-\u003epfmemalloc when ALLOC_NO_WATERMARKS was required\n\nPatch 6 ignores memory policies when ALLOC_NO_WATERMARKS is set.\n\nPatches 7-12 allows network processing to use PFMEMALLOC reserves when\n\tthe socket has been marked as being used by the VM to clean pages. If\n\tpackets are received and stored in pages that were allocated under\n\tlow-memory situations and are unrelated to the VM, the packets\n\tare dropped.\n\n\tPatch 11 reintroduces __skb_alloc_page which the networking\n\tfolk may object to but is needed in some cases to propogate\n\tpfmemalloc from a newly allocated page to an skb. If there is a\n\tstrong objection, this patch can be dropped with the impact being\n\tthat swap-over-network will be slower in some cases but it should\n\tnot fail.\n\nPatch 13 is a micro-optimisation to avoid a function call in the\n\tcommon case.\n\nPatch 14 tags NBD sockets as being SOCK_MEMALLOC so they can use\n\tPFMEMALLOC if necessary.\n\nPatch 15 notes that it is still possible for the PFMEMALLOC reserve\n\tto be depleted. To prevent this, direct reclaimers get throttled on\n\ta waitqueue if 50% of the PFMEMALLOC reserves are depleted.  It is\n\texpected that kswapd and the direct reclaimers already running\n\twill clean enough pages for the low watermark to be reached and\n\tthe throttled processes are woken up.\n\nPatch 16 adds a statistic to track how often processes get throttled\n\nSome basic performance testing was run using kernel builds, netperf on\nloopback for UDP and TCP, hackbench (pipes and sockets), iozone and\nsysbench.  Each of them were expected to use the sl*b allocators\nreasonably heavily but there did not appear to be significant performance\nvariances.\n\nFor testing swap-over-NBD, a machine was booted with 2G of RAM with a\nswapfile backed by NBD.  8*NUM_CPU processes were started that create\nanonymous memory mappings and read them linearly in a loop.  The total\nsize of the mappings were 4*PHYSICAL_MEMORY to use swap heavily under\nmemory pressure.\n\nWithout the patches and using SLUB, the machine locks up within minutes\nand runs to completion with them applied.  With SLAB, the story is\ndifferent as an unpatched kernel run to completion.  However, the patched\nkernel completed the test 45% faster.\n\nMICRO\n                                         3.5.0-rc2 3.5.0-rc2\n\t\t\t\t\t vanilla     swapnbd\nUnrecognised test vmscan-anon-mmap-write\nMMTests Statistics: duration\nSys Time Running Test (seconds)             197.80    173.07\nUser+Sys Time Running Test (seconds)        206.96    182.03\nTotal Elapsed Time (seconds)               3240.70   1762.09\n\nThis patch: mm: sl[au]b: add knowledge of PFMEMALLOC reserve pages\n\nAllocations of pages below the min watermark run a risk of the machine\nhanging due to a lack of memory.  To prevent this, only callers who have\nPF_MEMALLOC or TIF_MEMDIE set and are not processing an interrupt are\nallowed to allocate with ALLOC_NO_WATERMARKS.  Once they are allocated to\na slab though, nothing prevents other callers consuming free objects\nwithin those slabs.  This patch limits access to slab pages that were\nalloced from the PFMEMALLOC reserves.\n\nWhen this patch is applied, pages allocated from below the low watermark\nare returned with page-\u003epfmemalloc set and it is up to the caller to\ndetermine how the page should be protected.  SLAB restricts access to any\npage with page-\u003epfmemalloc set to callers which are known to able to\naccess the PFMEMALLOC reserve.  If one is not available, an attempt is\nmade to allocate a new page rather than use a reserve.  SLUB is a bit more\nrelaxed in that it only records if the current per-CPU page was allocated\nfrom PFMEMALLOC reserve and uses another partial slab if the caller does\nnot have the necessary GFP or process flags.  This was found to be\nsufficient in tests to avoid hangs due to SLUB generally maintaining\nsmaller lists than SLAB.\n\nIn low-memory conditions it does mean that !PFMEMALLOC allocators can fail\na slab allocation even though free objects are available because they are\nbeing preserved for callers that are freeing pages.\n\n[a.p.zijlstra@chello.nl: Original implementation]\n[sebastian@breakpoint.cc: Correct order of page flag clearing]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "702d1a6e0766d45642c934444fd41f658d251305",
      "tree": "6c9144521b03f11f7ea2e709f066b90a9b9f38d5",
      "parents": [
        "2cfed0752808625d30aca7fc9f383af386fd8a13"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Tue Jul 31 16:43:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:45 2012 -0700"
      },
      "message": "memory-hotplug: fix kswapd looping forever problem\n\nWhen hotplug offlining happens on zone A, it starts to mark freed page as\nMIGRATE_ISOLATE type in buddy for preventing further allocation.\n(MIGRATE_ISOLATE is very irony type because it\u0027s apparently on buddy but\nwe can\u0027t allocate them).\n\nWhen the memory shortage happens during hotplug offlining, current task\nstarts to reclaim, then wake up kswapd.  Kswapd checks watermark, then go\nsleep because current zone_watermark_ok_safe doesn\u0027t consider\nMIGRATE_ISOLATE freed page count.  Current task continue to reclaim in\ndirect reclaim path without kswapd\u0027s helping.  The problem is that\nzone-\u003eall_unreclaimable is set by only kswapd so that current task would\nbe looping forever like below.\n\n__alloc_pages_slowpath\nrestart:\n\twake_all_kswapd\nrebalance:\n\t__alloc_pages_direct_reclaim\n\t\tdo_try_to_free_pages\n\t\t\tif global_reclaim \u0026\u0026 !all_unreclaimable\n\t\t\t\treturn 1; /* It means we did did_some_progress */\n\tskip __alloc_pages_may_oom\n\tshould_alloc_retry\n\t\tgoto rebalance;\n\nIf we apply KOSAKI\u0027s patch[1] which doesn\u0027t depends on kswapd about\nsetting zone-\u003eall_unreclaimable, we can solve this problem by killing some\ntask in direct reclaim path.  But it doesn\u0027t wake up kswapd, still.  It\ncould be a problem still if other subsystem needs GFP_ATOMIC request.  So\nkswapd should consider MIGRATE_ISOLATE when it calculate free pages BEFORE\ngoing sleep.\n\nThis patch counts the number of MIGRATE_ISOLATE page block and\nzone_watermark_ok_safe will consider it if the system has such blocks\n(fortunately, it\u0027s very rare so no problem in POV overhead and kswapd is\nnever hotpath).\n\nCopy/modify from Mel\u0027s quote\n\"\nIdeal solution would be \"allocating\" the pageblock.\nIt would keep the free space accounting as it is but historically,\nmemory hotplug didn\u0027t allocate pages because it would be difficult to\ndetect if a pageblock was isolated or if part of some balloon.\nAllocating just full pageblocks would work around this, However,\nit would play very badly with CMA.\n\"\n\n[1] http://lkml.org/lkml/2012/6/14/74\n\n[akpm@linux-foundation.org: simplify nr_zone_isolate_freepages(), rework zone_watermark_ok_safe() comment, simplify set_pageblock_isolate() and restore_pageblock_isolate()]\n[akpm@linux-foundation.org: fix CONFIG_MEMORY_ISOLATION\u003dn build]\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nSuggested-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nTested-by: Aaditya Kumar \u003caaditya.kumar.30@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Hocko \u003cmhocko@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": "ee6f509c3274014d1f52e7a7a10aee9f85393c5e",
      "tree": "d8e5c816de0752b70b63f5de50ed52808ef3be9f",
      "parents": [
        "876aafbfd9ba5bb352f1b14622c27f3fe9a99013"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Tue Jul 31 16:43:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:45 2012 -0700"
      },
      "message": "mm: factor out memory isolate functions\n\nmm/page_alloc.c has some memory isolation functions but they are used only\nwhen we enable CONFIG_{CMA|MEMORY_HOTPLUG|MEMORY_FAILURE}.  So let\u0027s make\nit configurable by new CONFIG_MEMORY_ISOLATION so that it can reduce\nbinary size and we can check it simple by CONFIG_MEMORY_ISOLATION, not if\ndefined CONFIG_{CMA|MEMORY_HOTPLUG|MEMORY_FAILURE}.\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Hocko \u003cmhocko@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": "876aafbfd9ba5bb352f1b14622c27f3fe9a99013",
      "tree": "fdd18b6caa0c9baa56b76feb9b05339919f283dd",
      "parents": [
        "6b0c81b3be114a93f79bd4c5639ade5107d77c21"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jul 31 16:43:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:45 2012 -0700"
      },
      "message": "mm, memcg: move all oom handling to memcontrol.c\n\nBy globally defining check_panic_on_oom(), the memcg oom handler can be\nmoved entirely to mm/memcontrol.c.  This removes the ugly #ifdef in the\noom killer and cleans up the code.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9cbb78bb314360a860a8b23723971cb6fcb54176",
      "tree": "7983de03845b5914e0188ce119f9374711ffcce7",
      "parents": [
        "462607ecc519b197f7b5cc6b024a1c26fa6fc0ac"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jul 31 16:43:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:44 2012 -0700"
      },
      "message": "mm, memcg: introduce own oom handler to iterate only over its own threads\n\nThe global oom killer is serialized by the per-zonelist\ntry_set_zonelist_oom() which is used in the page allocator.  Concurrent\noom kills are thus a rare event and only occur in systems using\nmempolicies and with a large number of nodes.\n\nMemory controller oom kills, however, can frequently be concurrent since\nthere is no serialization once the oom killer is called for oom conditions\nin several different memcgs in parallel.\n\nThis creates a massive contention on tasklist_lock since the oom killer\nrequires the readside for the tasklist iteration.  If several memcgs are\ncalling the oom killer, this lock can be held for a substantial amount of\ntime, especially if threads continue to enter it as other threads are\nexiting.\n\nSince the exit path grabs the writeside of the lock with irqs disabled in\na few different places, this can cause a soft lockup on cpus as a result\nof tasklist_lock starvation.\n\nThe kernel lacks unfair writelocks, and successful calls to the oom killer\nusually result in at least one thread entering the exit path, so an\nalternative solution is needed.\n\nThis patch introduces a seperate oom handler for memcgs so that they do\nnot require tasklist_lock for as much time.  Instead, it iterates only\nover the threads attached to the oom memcg and grabs a reference to the\nselected thread before calling oom_kill_process() to ensure it doesn\u0027t\nprematurely exit.\n\nThis still requires tasklist_lock for the tasklist dump, iterating\nchildren of the selected process, and killing all other threads on the\nsystem sharing the same memory as the selected victim.  So while this\nisn\u0027t a complete solution to tasklist_lock starvation, it significantly\nreduces the amount of time that it is held.\n\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "62ce1c706f817cb9defef3ac2dfdd815149f2968",
      "tree": "2e8db1011c2a8ee97aa91f640e49f6f34f40ba9c",
      "parents": [
        "4ed7e02222aba062bd0ed3ab12dfc8e9fc0467b5"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jul 31 16:43:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:44 2012 -0700"
      },
      "message": "mm, oom: move declaration for mem_cgroup_out_of_memory to oom.h\n\nmem_cgroup_out_of_memory() is defined in mm/oom_kill.c, so declare it in\nlinux/oom.h rather than linux/memcontrol.h.\n\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Oleg Nesterov \u003coleg@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": "340175b7d14d5617559d0c1a54fa0ea204d9edcd",
      "tree": "7b2fb51d5bf1e54bf258a058fea347ee2d75ac7b",
      "parents": [
        "08dff7b7d629807dbb1f398c68dd9cd58dd657a1"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "jiang.liu@huawei.com",
        "time": "Tue Jul 31 16:43:32 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:44 2012 -0700"
      },
      "message": "mm/hotplug: free zone-\u003epageset when a zone becomes empty\n\nWhen a zone becomes empty after memory offlining, free zone-\u003epageset.\nOtherwise it will cause memory leak when adding memory to the empty zone\nagain because build_all_zonelists() will allocate zone-\u003epageset for an\nempty zone.\n\nSigned-off-by: Jiang Liu \u003cliuj97@gmail.com\u003e\nSigned-off-by: Wei Wang \u003cBessel.Wang@huawei.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Keping Chen \u003cchenkeping@huawei.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9adb62a5df9c0fbef7b4665919329f73a34651ed",
      "tree": "8372c9c1202adac889714ea99319346279107f33",
      "parents": [
        "da92c47d069890106484cb6605df701a54d24499"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "jiang.liu@huawei.com",
        "time": "Tue Jul 31 16:43:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:44 2012 -0700"
      },
      "message": "mm/hotplug: correctly setup fallback zonelists when creating new pgdat\n\nWhen hotadd_new_pgdat() is called to create new pgdat for a new node, a\nfallback zonelist should be created for the new node.  There\u0027s code to try\nto achieve that in hotadd_new_pgdat() as below:\n\n\t/*\n\t * The node we allocated has no zone fallback lists. For avoiding\n\t * to access not-initialized zonelist, build here.\n\t */\n\tmutex_lock(\u0026zonelists_mutex);\n\tbuild_all_zonelists(pgdat, NULL);\n\tmutex_unlock(\u0026zonelists_mutex);\n\nBut it doesn\u0027t work as expected.  When hotadd_new_pgdat() is called, the\nnew node is still in offline state because node_set_online(nid) hasn\u0027t\nbeen called yet.  And build_all_zonelists() only builds zonelists for\nonline nodes as:\n\n        for_each_online_node(nid) {\n                pg_data_t *pgdat \u003d NODE_DATA(nid);\n\n                build_zonelists(pgdat);\n                build_zonelist_cache(pgdat);\n        }\n\nThough we hope to create zonelist for the new pgdat, but it doesn\u0027t.  So\nadd a new parameter \"pgdat\" the build_all_zonelists() to build pgdat for\nthe new pgdat too.\n\nSigned-off-by: Jiang Liu \u003cliuj97@gmail.com\u003e\nSigned-off-by: Xishi Qiu \u003cqiuxishi@huawei.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Keping Chen \u003cchenkeping@huawei.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e125cd85517c9716695b0abfabc0a4a3fcb94f3",
      "tree": "ba146f3d6bf531730d1d977dceb2f195ddf23e5b",
      "parents": [
        "fe03025db3f4ade1f231b174938e0fe224722759"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Tue Jul 31 16:43:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:43 2012 -0700"
      },
      "message": "vmscan: remove obsolete shrink_control comment\n\n09f363c7 (\"vmscan: fix shrinker callback bug in fs/super.c\") fixed a\nshrinker callback which was returning -1 when nr_to_scan is zero, which\ncaused excessive slab scanning.  But 635697c6 (\"vmscan: fix initial\nshrinker size handling\") fixed the problem, again so we can freely return\n-1 although nr_to_scan is zero.  So let\u0027s revert 09f363c7 because the\ncomment added in 09f363c7 made an unnecessary rule.\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe03025db3f4ade1f231b174938e0fe224722759",
      "tree": "8414153a22fbf0859ba3b9c07cb9d11ba0fe4214",
      "parents": [
        "7db8889ab05b57200158432755af318fb68854a2"
      ],
      "author": {
        "name": "Rabin Vincent",
        "email": "rabin@rab.in",
        "time": "Tue Jul 31 16:43:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:43 2012 -0700"
      },
      "message": "mm: CONFIG_HAVE_MEMBLOCK_NODE -\u003e CONFIG_HAVE_MEMBLOCK_NODE_MAP\n\n0ee332c14518699 (\"memblock: Kill early_node_map[]\") wanted to replace\nCONFIG_ARCH_POPULATES_NODE_MAP with CONFIG_HAVE_MEMBLOCK_NODE_MAP but\nended up replacing one occurence with a reference to the non-existent\nsymbol CONFIG_HAVE_MEMBLOCK_NODE.\n\nThe resulting omission of code would probably have been causing problems\nto 32-bit machines with memory hotplug.\n\nSigned-off-by: Rabin Vincent \u003crabin@rab.in\u003e\nCc: Tejun Heo \u003ctj@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": "7db8889ab05b57200158432755af318fb68854a2",
      "tree": "dfce0ce79909bc102465d871dc7b949fa9525e85",
      "parents": [
        "ab2158848775c7918288f2c423d3e4dbbc7d34eb"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue Jul 31 16:43:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:43 2012 -0700"
      },
      "message": "mm: have order \u003e 0 compaction start off where it left\n\nOrder \u003e 0 compaction stops when enough free pages of the correct page\norder have been coalesced.  When doing subsequent higher order\nallocations, it is possible for compaction to be invoked many times.\n\nHowever, the compaction code always starts out looking for things to\ncompact at the start of the zone, and for free pages to compact things to\nat the end of the zone.\n\nThis can cause quadratic behaviour, with isolate_freepages starting at the\nend of the zone each time, even though previous invocations of the\ncompaction code already filled up all free memory on that end of the zone.\n\nThis can cause isolate_freepages to take enormous amounts of CPU with\ncertain workloads on larger memory systems.\n\nThe obvious solution is to have isolate_freepages remember where it left\noff last time, and continue at that point the next time it gets invoked\nfor an order \u003e 0 compaction.  This could cause compaction to fail if\ncc-\u003efree_pfn and cc-\u003emigrate_pfn are close together initially, in that\ncase we restart from the end of the zone and try once more.\n\nForced full (order \u003d\u003d -1) compactions are left alone.\n\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: s/laste/last/, use 80 cols]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nReported-by: Jim Schutt \u003cjaschut@sandia.gov\u003e\nTested-by: Jim Schutt \u003cjaschut@sandia.gov\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca28ddc908fcfef0e5c1b6e5df632db7fc26de10",
      "tree": "403e763684ae57afa007047a3ba3843d099a7cca",
      "parents": [
        "c255a458055e459f65eb7b7f51dc5dbdd0caf1d8"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "liwp@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:43:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:43 2012 -0700"
      },
      "message": "mm: remove unused LRU_ALL_EVICTABLE\n\nSigned-off-by: Wanpeng Li \u003cliwp.linux@gmail.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@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": "c255a458055e459f65eb7b7f51dc5dbdd0caf1d8",
      "tree": "b143b1914eeb6f27f53e30f9f0275d0f1ca5480b",
      "parents": [
        "80934513b230bfcf70265f2ef0fdae89fb391633"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jul 31 16:43:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:43 2012 -0700"
      },
      "message": "memcg: rename config variables\n\nSanity:\n\nCONFIG_CGROUP_MEM_RES_CTLR -\u003e CONFIG_MEMCG\nCONFIG_CGROUP_MEM_RES_CTLR_SWAP -\u003e CONFIG_MEMCG_SWAP\nCONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED -\u003e CONFIG_MEMCG_SWAP_ENABLED\nCONFIG_CGROUP_MEM_RES_CTLR_KMEM -\u003e CONFIG_MEMCG_KMEM\n\n[mhocko@suse.cz: fix missed bits]\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c59e26104e3e0e952cd7d63e79cd71ee5a9ec25a",
      "tree": "14ab1cef0b19e576672bdfdea97bc947e6252a76",
      "parents": [
        "3c935d189be9bb877c5a1110ac5fbf9c8e310658"
      ],
      "author": {
        "name": "Gavin Shan",
        "email": "shangw@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:42:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:42 2012 -0700"
      },
      "message": "mm/compaction: cleanup on compaction_deferred\n\nWhen CONFIG_COMPACTION is enabled, compaction_deferred() tries to\nrecalculate the deferred limit again, which isn\u0027t necessary.\n\nWhen CONFIG_COMPACTION is disabled, compaction_deferred() should return\n\"true\" or \"false\" since it has \"bool\" for its return value.\n\nSigned-off-by: Gavin Shan \u003cshangw@linux.vnet.ibm.com\u003e\nAcked-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: 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": "8e6ac7fab374816de9a8b0a8fbb02ef761a30ff4",
      "tree": "94439bfcceb9e11af842da63f18f608aff4919c4",
      "parents": [
        "abb8206cb07734d0b7bf033c715995d6371a94c3"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:42:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:41 2012 -0700"
      },
      "message": "hugetlb/cgroup: migrate hugetlb cgroup info from oldpage to new page during migration\n\nWith HugeTLB pages, hugetlb cgroup is uncharged in compound page\ndestructor.  Since we are holding a hugepage reference, we can be sure\nthat old page won\u0027t get uncharged till the last put_page().\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "abb8206cb07734d0b7bf033c715995d6371a94c3",
      "tree": "a27a55420bd6fad941c559bb80176f10931deb60",
      "parents": [
        "da1def55919f4852c4759249a78d63a0c5d2d8f9"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:42:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:41 2012 -0700"
      },
      "message": "hugetlb/cgroup: add hugetlb cgroup control files\n\nAdd the control files for hugetlb controller\n\n[akpm@linux-foundation.org: s/CONFIG_CGROUP_HUGETLB_RES_CTLR/CONFIG_MEMCG_HUGETLB/g]\n[akpm@linux-foundation.org: s/CONFIG_MEMCG_HUGETLB/CONFIG_CGROUP_HUGETLB/]\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d76dcf40405144a448040a350fd214ddc243d5e",
      "tree": "025d7201f63bcba6e8b19b5e21ffb4371ebb69cf",
      "parents": [
        "9dd540e23111d8884773ab942a736f3aba4040d4"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:42:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:41 2012 -0700"
      },
      "message": "hugetlb/cgroup: add charge/uncharge routines for hugetlb cgroup\n\nAdd the charge and uncharge routines for hugetlb cgroup.  We do cgroup\ncharging in page alloc and uncharge in compound page destructor.\nAssigning page\u0027s hugetlb cgroup is protected by hugetlb_lock.\n\n[liwp@linux.vnet.ibm.com: add huge_page_order check to avoid incorrect uncharge]\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Wanpeng Li \u003cliwp.linux@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": "9dd540e23111d8884773ab942a736f3aba4040d4",
      "tree": "84c7dcfa97c43d1f09ad88cdc836ff1b99da76e4",
      "parents": [
        "2bc64a2046975410505bb119bba32705892b9255"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:42:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:41 2012 -0700"
      },
      "message": "hugetlb/cgroup: add the cgroup pointer to page lru\n\nAdd the hugetlb cgroup pointer to 3rd page lru.next.  This limit the usage\nto hugetlb cgroup to only hugepages with 3 or more normal pages.  I guess\nthat is an acceptable limitation.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bc64a2046975410505bb119bba32705892b9255",
      "tree": "5cc4967a4ddee90d8efa19e9ad233ee28b946eab",
      "parents": [
        "c3f38a38715e9b4e7b1dda6840a1375f6894744d"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:42:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:40 2012 -0700"
      },
      "message": "mm/hugetlb: add new HugeTLB cgroup\n\nImplement a new controller that allows us to control HugeTLB allocations.\nThe extension allows to limit the HugeTLB usage per control group and\nenforces the controller limit during page fault.  Since HugeTLB doesn\u0027t\nsupport page reclaim, enforcing the limit at page fault time implies that,\nthe application will get SIGBUS signal if it tries to access HugeTLB pages\nbeyond its limit.  This requires the application to know beforehand how\nmuch HugeTLB pages it would require for its use.\n\nThe charge/uncharge calls will be added to HugeTLB code in later patch.\nSupport for cgroup removal will be added in later patches.\n\n[akpm@linux-foundation.org: s/CONFIG_CGROUP_HUGETLB_RES_CTLR/CONFIG_MEMCG_HUGETLB/g]\n[akpm@linux-foundation.org: s/CONFIG_MEMCG_HUGETLB/CONFIG_CGROUP_HUGETLB/g]\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3f38a38715e9b4e7b1dda6840a1375f6894744d",
      "tree": "a351f014cc5e4483a9f5498b7086783b0fcb5bdd",
      "parents": [
        "0edaecfab218d747d30de4575e911907371e2cd2"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:42:10 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:40 2012 -0700"
      },
      "message": "hugetlb: make some static variables global\n\nWe will use them later in hugetlb_cgroup.c\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0edaecfab218d747d30de4575e911907371e2cd2",
      "tree": "352ef3e6d2dd13b90efddfd275e4472caeb4a697",
      "parents": [
        "189ebff2894a9d0f4e250dd1e154d282ef0a6779"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:42:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:40 2012 -0700"
      },
      "message": "hugetlb: add a list for tracking in-use HugeTLB pages\n\nhugepage_activelist will be used to track currently used HugeTLB pages.\nWe need to find the in-use HugeTLB pages to support HugeTLB cgroup removal.\nOn cgroup removal we update the page\u0027s HugeTLB cgroup to point to parent\ncgroup.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "189ebff2894a9d0f4e250dd1e154d282ef0a6779",
      "tree": "e498573190660e2cfe6f64ff3fcc8cf3d44a58da",
      "parents": [
        "24669e58477e2752c1fbca9c1c988e9dd0d79d15"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:42:06 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:40 2012 -0700"
      },
      "message": "hugetlb: simplify migrate_huge_page()\n\nSince we migrate only one hugepage, don\u0027t use linked list for passing the\npage around.  Directly pass the page that need to be migrated as argument.\nThis also removes the usage of page-\u003elru in the migrate path.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24669e58477e2752c1fbca9c1c988e9dd0d79d15",
      "tree": "a4fe04fc1cc2b5a2d89b67f745185b9e9640426f",
      "parents": [
        "972dc4de13f667a7df27ee32573b2e6fc6cc8434"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:42:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:40 2012 -0700"
      },
      "message": "hugetlb: use mmu_gather instead of a temporary linked list for accumulating pages\n\nUse a mmu_gather instead of a temporary linked list for accumulating pages\nwhen we unmap a hugepage range\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "972dc4de13f667a7df27ee32573b2e6fc6cc8434",
      "tree": "0d3ea1381b81700d17307fc6996a67bbabb7fac2",
      "parents": [
        "76dcee75c1aff61259f5ed55e2bcfab60cc4bd5f"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:42:00 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:40 2012 -0700"
      },
      "message": "hugetlb: add an inline helper for finding hstate index\n\nAdd an inline helper and use it in the code.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3965c9ae47d64aadf6f13b6fcd37767b83c0689a",
      "tree": "9896fbd841edbaa8e374b593ad0f7b96191cda5d",
      "parents": [
        "deaf386ee58d5336bbef8959bf304573afb67c20"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "liwp@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:41:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:40 2012 -0700"
      },
      "message": "mm: prepare for removal of obsolete /proc/sys/vm/nr_pdflush_threads\n\nSince per-BDI flusher threads were introduced in 2.6, the pdflush\nmechanism is not used any more.  But the old interface exported through\n/proc/sys/vm/nr_pdflush_threads still exists and is obviously useless.\n\nFor back-compatibility, printk warning information and return 2 to notify\nthe users that the interface is removed.\n\nSigned-off-by: Wanpeng Li \u003cliwp@linux.vnet.ibm.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@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": "44de9d0cad41f2c51ef26916842be046b582dcc9",
      "tree": "a9ce576f28e5038e9e3ae2e360cadf176dc74898",
      "parents": [
        "df858fa8276f85106f2f5c3cd49c1fa524058070"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Tue Jul 31 16:41:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:39 2012 -0700"
      },
      "message": "mm: account the total_vm in the vm_stat_account()\n\nvm_stat_account() accounts the shared_vm, stack_vm and reserved_vm now.\nBut we can also account for total_vm in the vm_stat_account() which makes\nthe code tidy.\n\nEven for mprotect_fixup(), we can get the right result in the end.\n\nSigned-off-by: Huang Shijie \u003cshijie8@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": "4b24ff71108164e047cf2c95990b77651163e315",
      "tree": "4b478906379adf22ff259fc1f2cce0da796df415",
      "parents": [
        "bca1a5c0eabe0f17081760c61e8d08e73dd6b6a6",
        "4b1bf5871f7d59de6484cc887e205d6d2f1e6fbd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:08:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:08:25 2012 -0700"
      },
      "message": "Merge tag \u0027for-v3.6\u0027 of git://git.infradead.org/battery-2.6\n\nPull battery updates from Anton Vorontsov:\n \"The tag contains just a few battery-related changes for v3.6.  It\u0027s is\n  all pretty straightforward, except one thing.\n\n  One of our patches added thermal support for power supply class, but\n  thermal/ subsystem changed under our feet.  We (well, Stephen, that\n  is) caught the issue and it was decided[1] that I\u0027d just delay the\n  battery pull request, and then will fix it up by merging upstream back\n  into battery tree at the specific commit.\n\n  That\u0027s not all though: another[2] small fixup for thermal subsystem\n  was needed to get rid of a warning in power supply subsystem (the\n  warning was not drivers/power\u0027s \"fault\", the thermal registration\n  function just needed a proper const annotation, which is also done by\n  a small commit on top of the merge.\n\n  So, to sum this up:\n   - The \u0027master\u0027 branch of the battery tree was in the -next tree for\n     weeks, was never rebased, altered etc.  It should be all OK;\n   - Although, for-v3.6 tag contains the \u0027master\u0027 branch + merge + the\n     warning fix.\n\n  [1] http://lkml.org/lkml/2012/6/19/23\n  [2] http://lkml.org/lkml/2012/6/18/28\"\n\n* tag \u0027for-v3.6\u0027 of git://git.infradead.org/battery-2.6: (23 commits)\n  thermal: Constify \u0027type\u0027 argument for the registration routine\n  olpc-battery: update CHARGE_FULL_DESIGN property for BYD LiFe batteries\n  olpc-battery: Add VOLTAGE_MAX_DESIGN property\n  charger-manager: Fix build break related to EXTCON\n  lp8727_charger: Move header file into platform_data directory\n  power_supply: Add min/max alert properties for CAPACITY, TEMP, TEMP_AMBIENT\n  bq27x00_battery: Add support for BQ27425 chip\n  charger-manager: Set current limit of regulator for over current protection\n  charger-manager: Use EXTCON Subsystem to detect charger cables for charging\n  test_power: Add VOLTAGE_NOW and BATTERY_TEMP properties\n  test_power: Add support for USB AC source\n  gpio-charger: Use cansleep version of gpio_set_value\n  bq27x00_battery: Add support for power average and health properties\n  sbs-battery: Don\u0027t trigger false supply_changed event\n  twl4030_charger: Allow charger to control the regulator that feeds it\n  twl4030_charger: Add backup-battery charging\n  twl4030_charger: Fix some typos\n  max17042_battery: Support CHARGE_COUNTER power supply attribute\n  smb347-charger: Add constant charge and current properties\n  power_supply: Add constant charge_current and charge_voltage properties\n  ...\n"
    },
    {
      "commit": "caacf05e5ad1abf0a2864863da4e33024bc68ec6",
      "tree": "9a82e97a072e288f604bd3dbbe07e1796581fad0",
      "parents": [
        "c5038a8327b980a5b279fa193163c468011de009"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 15:06:50 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 15:06:50 2012 -0700"
      },
      "message": "ipv4: Properly purge netdev references on uncached routes.\n\nWhen a device is unregistered, we have to purge all of the\nreferences to it that may exist in the entire system.\n\nIf a route is uncached, we currently have no way of accomplishing\nthis.\n\nSo create a global list that is scanned when a network device goes\ndown.  This mirrors the logic in net/core/dst.c\u0027s dst_ifdown().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c5038a8327b980a5b279fa193163c468011de009",
      "tree": "6d24fd005340e73360f9c1aa20dd3a1d21fd1625",
      "parents": [
        "d26b3a7c4b3b26319f18bb645de93eba8f4bdcd5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 15:02:02 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 15:02:02 2012 -0700"
      },
      "message": "ipv4: Cache routes in nexthop exception entries.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "08843b79fb35d33859e0f8f11a7318341076e4d1",
      "tree": "e56e122146985b359d50787e3d1df640c4582dfa",
      "parents": [
        "cc8362b1f6d724e46f515121d442779924b19fec",
        "2c142baa7b237584bae7dc28630851701497e1ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 14:42:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 14:42:28 2012 -0700"
      },
      "message": "Merge branch \u0027nfsd-next\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd changes from J. Bruce Fields:\n \"This has been an unusually quiet cycle--mostly bugfixes and cleanup.\n  The one large piece is Stanislav\u0027s work to containerize the server\u0027s\n  grace period--but that in itself is just one more step in a\n  not-yet-complete project to allow fully containerized nfs service.\n\n  There are a number of outstanding delegation, container, v4 state, and\n  gss patches that aren\u0027t quite ready yet; 3.7 may be wilder.\"\n\n* \u0027nfsd-next\u0027 of git://linux-nfs.org/~bfields/linux: (35 commits)\n  NFSd: make boot_time variable per network namespace\n  NFSd: make grace end flag per network namespace\n  Lockd: move grace period management from lockd() to per-net functions\n  LockD: pass actual network namespace to grace period management functions\n  LockD: manage grace list per network namespace\n  SUNRPC: service request network namespace helper introduced\n  NFSd: make nfsd4_manager allocated per network namespace context.\n  LockD: make lockd manager allocated per network namespace\n  LockD: manage grace period per network namespace\n  Lockd: add more debug to host shutdown functions\n  Lockd: host complaining function introduced\n  LockD: manage used host count per networks namespace\n  LockD: manage garbage collection timeout per networks namespace\n  LockD: make garbage collector network namespace aware.\n  LockD: mark host per network namespace on garbage collect\n  nfsd4: fix missing fault_inject.h include\n  locks: move lease-specific code out of locks_delete_lock\n  locks: prevent side-effects of locks_release_private before file_lock is initialized\n  NFSd: set nfsd_serv to NULL after service destruction\n  NFSd: introduce nfsd_destroy() helper\n  ...\n"
    },
    {
      "commit": "d26b3a7c4b3b26319f18bb645de93eba8f4bdcd5",
      "tree": "ca86c03450fafdc89dac98ce403b1906fcaa025d",
      "parents": [
        "54764bb647b2e847c512acf8d443df965da35000"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue Jul 31 05:45:30 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 14:41:39 2012 -0700"
      },
      "message": "ipv4: percpu nh_rth_output cache\n\nInput path is mostly run under RCU and doesnt touch dst refcnt\n\nBut output path on forwarding or UDP workloads hits\nbadly dst refcount, and we have lot of false sharing, for example\nin ipv4_mtu() when reading rt-\u003ert_pmtu\n\nUsing a percpu cache for nh_rth_output gives a nice performance\nincrease at a small cost.\n\n24 udpflood test on my 24 cpu machine (dummy0 output device)\n(each process sends 1.000.000 udp frames, 24 processes are started)\n\nbefore : 5.24 s\nafter : 2.06 s\nFor reference, time on linux-3.5 : 6.60 s\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nTested-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "54764bb647b2e847c512acf8d443df965da35000",
      "tree": "3918f6f42679d0ebdcef230f28285f99d178be62",
      "parents": [
        "5a0d513b622ee41e117fc37e26e27e8ef42e8dae"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jul 31 01:08:23 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 14:41:38 2012 -0700"
      },
      "message": "ipv4: Restore old dst_free() behavior.\n\ncommit 404e0a8b6a55 (net: ipv4: fix RCU races on dst refcounts) tried\nto solve a race but added a problem at device/fib dismantle time :\n\nWe really want to call dst_free() as soon as possible, even if sockets\nstill have dst in their cache.\ndst_release() calls in free_fib_info_rcu() are not welcomed.\n\nRoot of the problem was that now we also cache output routes (in\nnh_rth_output), we must use call_rcu() instead of call_rcu_bh() in\nrt_free(), because output route lookups are done in process context.\n\nBased on feedback and initial patch from David Miller (adding another\ncall_rcu_bh() call in fib, but it appears it was not the right fix)\n\nI left the inet_sk_rx_dst_set() helper and added __rcu attributes\nto nh_rth_output and nh_rth_input to better document what is going on in\nthis code.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cc8362b1f6d724e46f515121d442779924b19fec",
      "tree": "86fb5c3767e538ec9ded57dd7b3ce5d69dcde691",
      "parents": [
        "2e3ee613480563a6d5c01b57d342e65cc58c06df",
        "1fe5e9932156f6122c3b1ff6ba7541c27c86718c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 14:35:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 14:35:28 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull Ceph changes from Sage Weil:\n \"Lots of stuff this time around:\n\n   - lots of cleanup and refactoring in the libceph messenger code, and\n     many hard to hit races and bugs closed as a result.\n   - lots of cleanup and refactoring in the rbd code from Alex Elder,\n     mostly in preparation for the layering functionality that will be\n     coming in 3.7.\n   - some misc rbd cleanups from Josh Durgin that are finally going\n     upstream\n   - support for CRUSH tunables (used by newer clusters to improve the\n     data placement)\n   - some cleanup in our use of d_parent that Al brought up a while back\n   - a random collection of fixes across the tree\n\n  There is another patch coming that fixes up our -\u003eatomic_open()\n  behavior, but I\u0027m going to hammer on it a bit more before sending it.\"\n\nFix up conflicts due to commits that were already committed earlier in\ndrivers/block/rbd.c, net/ceph/{messenger.c, osd_client.c}\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (132 commits)\n  rbd: create rbd_refresh_helper()\n  rbd: return obj version in __rbd_refresh_header()\n  rbd: fixes in rbd_header_from_disk()\n  rbd: always pass ops array to rbd_req_sync_op()\n  rbd: pass null version pointer in add_snap()\n  rbd: make rbd_create_rw_ops() return a pointer\n  rbd: have __rbd_add_snap_dev() return a pointer\n  libceph: recheck con state after allocating incoming message\n  libceph: change ceph_con_in_msg_alloc convention to be less weird\n  libceph: avoid dropping con mutex before fault\n  libceph: verify state after retaking con lock after dispatch\n  libceph: revoke mon_client messages on session restart\n  libceph: fix handling of immediate socket connect failure\n  ceph: update MAINTAINERS file\n  libceph: be less chatty about stray replies\n  libceph: clear all flags on con_close\n  libceph: clean up con flags\n  libceph: replace connection state bits with states\n  libceph: drop unnecessary CLOSED check in socket state change callback\n  libceph: close socket directly from ceph_con_close()\n  ...\n"
    },
    {
      "commit": "89e1f7d4c66d85f42c3d52ea3866eb10cadf6153",
      "tree": "6bea54ae5eaea48c17d309855d36d801259b64d1",
      "parents": [
        "73fa0d10d077d9521ee2dace2307ae2c9a965336"
      ],
      "author": {
        "name": "Alex Williamson",
        "email": "alex.williamson@redhat.com",
        "time": "Tue Jul 31 08:16:24 2012 -0600"
      },
      "committer": {
        "name": "Alex Williamson",
        "email": "alex.williamson@redhat.com",
        "time": "Tue Jul 31 08:16:24 2012 -0600"
      },
      "message": "vfio: Add PCI device driver\n\nAdd PCI device support for VFIO.  PCI devices expose regions\nfor accessing config space, I/O port space, and MMIO areas\nof the device.  PCI config access is virtualized in the kernel,\nallowing us to ensure the integrity of the system, by preventing\nvarious accesses while reducing duplicate support across various\nuserspace drivers.  I/O port supports read/write access while\nMMIO also supports mmap of sufficiently sized regions.  Support\nfor INTx, MSI, and MSI-X interrupts are provided using eventfds to\nuserspace.\n\nSigned-off-by: Alex Williamson \u003calex.williamson@redhat.com\u003e\n"
    },
    {
      "commit": "73fa0d10d077d9521ee2dace2307ae2c9a965336",
      "tree": "2c820b194dd8ea00f23d85c382e86ea6c3beb498",
      "parents": [
        "4a5b2a20ec87384eeb19e70991e7e15a00cad87b"
      ],
      "author": {
        "name": "Alex Williamson",
        "email": "alex.williamson@redhat.com",
        "time": "Tue Jul 31 08:16:23 2012 -0600"
      },
      "committer": {
        "name": "Alex Williamson",
        "email": "alex.williamson@redhat.com",
        "time": "Tue Jul 31 08:16:23 2012 -0600"
      },
      "message": "vfio: Type1 IOMMU implementation\n\nThis VFIO IOMMU backend is designed primarily for AMD-Vi and Intel\nVT-d hardware, but is potentially usable by anything supporting\nsimilar mapping functionality.  We arbitrarily call this a Type1\nbackend for lack of a better name.  This backend has no IOVA\nor host memory mapping restrictions for the user and is optimized\nfor relatively static mappings.  Mapped areas are pinned into system\nmemory.\n\nSigned-off-by: Alex Williamson \u003calex.williamson@redhat.com\u003e\n"
    },
    {
      "commit": "cba3345cc494ad286ca8823f44b2c16cae496679",
      "tree": "a4cd502d0abb4dbf0c6e59f998152a22cb4b1606",
      "parents": [
        "2e3ee613480563a6d5c01b57d342e65cc58c06df"
      ],
      "author": {
        "name": "Alex Williamson",
        "email": "alex.williamson@redhat.com",
        "time": "Tue Jul 31 08:16:22 2012 -0600"
      },
      "committer": {
        "name": "Alex Williamson",
        "email": "alex.williamson@redhat.com",
        "time": "Tue Jul 31 08:16:22 2012 -0600"
      },
      "message": "vfio: VFIO core\n\nVFIO is a secure user level driver for use with both virtual machines\nand user level drivers.  VFIO makes use of IOMMU groups to ensure the\nisolation of devices in use, allowing unprivileged user access.  It\u0027s\nintended that VFIO will replace KVM device assignment and UIO drivers\n(in cases where the target platform includes a sufficiently capable\nIOMMU).\n\nNew in this version of VFIO is support for IOMMU groups managed\nthrough the IOMMU core as well as a rework of the API, removing the\ngroup merge interface.  We now go back to a model more similar to\noriginal VFIO with UIOMMU support where the file descriptor obtained\nfrom /dev/vfio/vfio allows access to the IOMMU, but only after a\ngroup is added, avoiding the previous privilege issues with this type\nof model.  IOMMU support is also now fully modular as IOMMUs have\nvastly different interface requirements on different platforms.  VFIO\nusers are able to query and initialize the IOMMU model of their\nchoice.\n\nPlease see the follow-on Documentation commit for further description\nand usage example.\n\nSigned-off-by: Alex Williamson \u003calex.williamson@redhat.com\u003e\n"
    },
    {
      "commit": "4b1bf5871f7d59de6484cc887e205d6d2f1e6fbd",
      "tree": "892158a070e8897ef6a6101e740074ae6d5ad9eb",
      "parents": [
        "e6db06a53b1dcf4e9da4aba143e2eb4d63418abb"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Tue Jul 31 04:39:30 2012 -0700"
      },
      "committer": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Tue Jul 31 05:45:37 2012 -0700"
      },
      "message": "thermal: Constify \u0027type\u0027 argument for the registration routine\n\nthermal_zone_device_register() does not modify \u0027type\u0027 argument, so it is\nsafe to declare it as const. Otherwise, if we pass a const string, we are\ngetting the ugly warning:\n\nCC drivers/power/power_supply_core.o\ndrivers/power/power_supply_core.c: In function \u0027psy_register_thermal\u0027:\ndrivers/power/power_supply_core.c:204:6: warning: passing argument 1 of \u0027thermal_zone_device_register\u0027 discards \u0027const\u0027 qualifier from pointer target type [enabled by default]\ninclude/linux/thermal.h:140:29: note: expected \u0027char *\u0027 but argument is of type \u0027const char *\u0027\n\nSigned-off-by: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "e6db06a53b1dcf4e9da4aba143e2eb4d63418abb",
      "tree": "10adcecb71c95ce4393c39fa7911d091bcadfe09",
      "parents": [
        "ecc2edd56c49fa31a0a9ed15a7bf810ae79d3b85",
        "c56f5c0342dfee11a1a13d2f5bb7618de5b17590"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Tue Jul 31 04:59:42 2012 -0700"
      },
      "committer": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Tue Jul 31 05:16:47 2012 -0700"
      },
      "message": "Merge with upstream to accommodate with thermal changes\n\nThis merge is performed to take commit c56f5c0342dfee11a1 (\"Thermal: Make\nThermal trip points writeable\") out of Linus\u0027 tree and then fixup power\nsupply class. This is needed since thermal stuff added a new argument:\n\n  CC      drivers/power/power_supply_core.o\ndrivers/power/power_supply_core.c: In function ‘psy_register_thermal’:\ndrivers/power/power_supply_core.c:204:6: warning: passing argument 3 of ‘thermal_zone_device_register’ makes integer from pointer without a cast [enabled by default]\ninclude/linux/thermal.h:154:29: note: expected ‘int’ but argument is of type ‘struct power_supply *’\ndrivers/power/power_supply_core.c:204:6: error: too few arguments to function ‘thermal_zone_device_register’\ninclude/linux/thermal.h:154:29: note: declared here\nmake[1]: *** [drivers/power/power_supply_core.o] Error 1\nmake: *** [drivers/power/] Error 2\n\nSigned-off-by: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\n"
    },
    {
      "commit": "0e52d987c0b242fe3fe4c8e9732bd663cce0e50b",
      "tree": "5c510c7b8d819a68afb29b3769c069585cbc0095",
      "parents": [
        "89269ef1f0abc72c551198123e19cd4edfd43cf4",
        "a068682cd69461911407411b4198248a87c583e2",
        "d94443256f8f19732f0b95f65ec344c17751aa15"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Jul 31 12:06:43 2012 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Jul 31 12:06:43 2012 +0100"
      },
      "message": "Merge branches \u0027dma-omap\u0027, \u0027dma-pl08x\u0027 and \u0027dma-sa11x0\u0027 into dmaengine\n"
    },
    {
      "commit": "7bedaa5537604f34d1d63c5ec7891e559d2a61ed",
      "tree": "7d13d22792109d42ed4bae79f2fa9880d23a476e",
      "parents": [
        "571fa74034701391b1be2ad193f684acfdeb75d1"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Fri Apr 13 12:10:24 2012 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Jul 31 12:06:20 2012 +0100"
      },
      "message": "dmaengine: add OMAP DMA engine driver\n\nTested-by: Tony Lindgren \u003ctony@atomide.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "74018dc3063a2c729fc73041c0a9f03aac995920",
      "tree": "03f01bca3a2d9f7cf31785fbe74e9ab76bb0d4cd",
      "parents": [
        "2a7d5559b346574057dce4672d1ed9aaa9d1e685"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 31 09:08:15 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jul 31 09:08:15 2012 +0200"
      },
      "message": "blk: pass from_schedule to non-request unplug functions.\n\nThis will allow md/raid to know why the unplug was called,\nand will be able to act according - if !from_schedule it\nis safe to perform tasks which could themselves schedule.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "9cbb17508808f8a6bdd83354b61e126ac4fa6fed",
      "tree": "bc797d1b5cd829751a333115e6e6d52799fb6df2",
      "parents": [
        "0021b7bc045e4b0b85d8c53614342aaf84ca96a5"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 31 09:08:14 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jul 31 09:08:14 2012 +0200"
      },
      "message": "blk: centralize non-request unplug handling.\n\nBoth md and umem has similar code for getting notified on an\nblk_finish_plug event.\nCentralize this code in block/ and allow each driver to\nprovide its distinctive difference.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d9c95bdd53a8d9116d269c91ce3d151472e6bcd6",
      "tree": "43559cf0897c98796df34a585ffab0ca02fa2576",
      "parents": [
        "1e8b212fe5dcee9d3dbb152d235f3c33458fb26e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jun 12 16:20:47 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 31 09:45:54 2012 +0400"
      },
      "message": "fs: Remove old freezing mechanism\n\nNow that all users are converted, we can remove functions, variables, and\nconstants defined by the old freezing mechanism.\n\nBugLink: https://bugs.launchpad.net/bugs/897421\nTested-by: Kamal Mostafa \u003ckamal@canonical.com\u003e\nTested-by: Peter M. Petrakis \u003cpeter.petrakis@canonical.com\u003e\nTested-by: Dann Frazier \u003cdann.frazier@canonical.com\u003e\nTested-by: Massimo Morana \u003cmassimo.morana@canonical.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5accdf82ba25cacefd6c1867f1704beb4d244cdd",
      "tree": "7125b01d9bf0f23d5c5eaed0cbafa9a1cbe544d5",
      "parents": [
        "d87aae2f3c8e90bd0fe03f5309b4d066b712b8ec"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jun 12 16:20:34 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 31 09:30:13 2012 +0400"
      },
      "message": "fs: Improve filesystem freezing handling\n\nvfs_check_frozen() tests are racy since the filesystem can be frozen just after\nthe test is performed. Thus in write paths we can end up marking some pages or\ninodes dirty even though the file system is already frozen. This creates\nproblems with flusher thread hanging on frozen filesystem.\n\nAnother problem is that exclusion between -\u003epage_mkwrite() and filesystem\nfreezing has been handled by setting page dirty and then verifying s_frozen.\nThis guaranteed that either the freezing code sees the faulted page, writes it,\nand writeprotects it again or we see s_frozen set and bail out of page fault.\nThis works to protect from page being marked writeable while filesystem\nfreezing is running but has an unpleasant artefact of leaving dirty (although\nunmodified and writeprotected) pages on frozen filesystem resulting in similar\nproblems with flusher thread as the first problem.\n\nThis patch aims at providing exclusion between write paths and filesystem\nfreezing. We implement a writer-freeze read-write semaphore in the superblock.\nActually, there are three such semaphores because of lock ranking reasons - one\nfor page fault handlers (-\u003epage_mkwrite), one for all other writers, and one of\ninternal filesystem purposes (used e.g. to track running transactions).  Write\npaths which should block freezing (e.g. directory operations, -\u003eaio_write(),\n-\u003epage_mkwrite) hold reader side of the semaphore. Code freezing the filesystem\ntakes the writer side.\n\nOnly that we don\u0027t really want to bounce cachelines of the semaphores between\nCPUs for each write happening. So we implement the reader side of the semaphore\nas a per-cpu counter and the writer side is implemented using s_writers.frozen\nsuperblock field.\n\n[AV: microoptimize sb_start_write(); we want it fast in normal case]\n\nBugLink: https://bugs.launchpad.net/bugs/897421\nTested-by: Kamal Mostafa \u003ckamal@canonical.com\u003e\nTested-by: Peter M. Petrakis \u003cpeter.petrakis@canonical.com\u003e\nTested-by: Dann Frazier \u003cdann.frazier@canonical.com\u003e\nTested-by: Massimo Morana \u003cmassimo.morana@canonical.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2e3ee613480563a6d5c01b57d342e65cc58c06df",
      "tree": "b6b82d1ade41f137bdb9a5a18d8aa446e149c8b2",
      "parents": [
        "1fad1e9a747687a7399bf58e87974f9b1bbcae06",
        "331cbdeedeb2f4ef01ccb761513708af0fe77098"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 22:14:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 22:14:04 2012 -0700"
      },
      "message": "Merge tag \u0027writeback-proportions\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback updates from Wu Fengguang:\n \"Use time based periods to age the writeback proportions, which can\n  adapt equally well to fast/slow devices.\"\n\nFix up trivial conflict in comment in fs/sync.c\n\n* tag \u0027writeback-proportions\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Fix some comment errors\n  block: Convert BDI proportion calculations to flexible proportions\n  lib: Fix possible deadlock in flexible proportion code\n  lib: Proportions with flexible period\n"
    },
    {
      "commit": "1fad1e9a747687a7399bf58e87974f9b1bbcae06",
      "tree": "fde2dc9a35321e21c99e06d4b79d5fa06fd34679",
      "parents": [
        "bbeb0af25f493261c15ceee176c99b7fd6fd5479",
        "f44106e2173f08ccb1c9195d85a6c22388b461c1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 19:16:57 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 19:16:57 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.6-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates from Trond Myklebust:\n \"Features include:\n   - More preparatory patches for modularising NFSv2/v3/v4.  Split out\n     the various NFSv2/v3/v4-specific code into separate files\n   - More preparation for the NFSv4 migration code\n   - Ensure that OPEN(O_CREATE) observes the pNFS mds threshold\n     parameters\n   - pNFS fast failover when the data servers are down\n   - Various cleanups and debugging patches\"\n\n* tag \u0027nfs-for-3.6-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (67 commits)\n  nfs: fix fl_type tests in NFSv4 code\n  NFS: fix pnfs regression with directio writes\n  NFS: fix pnfs regression with directio reads\n  sunrpc: clnt: Add missing braces\n  nfs: fix stub return type warnings\n  NFS: exit_nfs_v4() shouldn\u0027t be an __exit function\n  SUNRPC: Add a missing spin_unlock to gss_mech_list_pseudoflavors\n  NFS: Split out NFS v4 client functions\n  NFS: Split out the NFS v4 filesystem types\n  NFS: Create a single nfs_clone_super() function\n  NFS: Split out NFS v4 server creating code\n  NFS: Initialize the NFS v4 client from init_nfs_v4()\n  NFS: Move the v4 getroot code to nfs4getroot.c\n  NFS: Split out NFS v4 file operations\n  NFS: Initialize v4 sysctls from nfs_init_v4()\n  NFS: Create an init_nfs_v4() function\n  NFS: Split out NFS v4 inode operations\n  NFS: Split out NFS v3 inode operations\n  NFS: Split out NFS v2 inode operations\n  NFS: Clean up nfs4_proc_setclientid() and friends\n  ...\n"
    },
    {
      "commit": "6df419e45d71b8d9a0de8e92a1212bbea460f0e0",
      "tree": "c0902a96353391400818fe8b7adf11493b56935a",
      "parents": [
        "27c1ee3f929555b71fa39ec0d81a7e7185de1b16",
        "c893e7c64e36087dceb4662917976a81d1754fc0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 19:03:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 19:03:41 2012 -0700"
      },
      "message": "Merge branch \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media\n\nPull media updates from Mauro Carvalho Chehab:\n \"This is the first part of the media patches for v3.6.\n\n  This patch series contain:\n   - new DVB frontend: rtl2832\n   - new video drivers: adv7393\n   - some unused files got removed\n   - a selection API cleanup between V4L2 and V4L2 subdev API\u0027s\n   - a major redesign at v4l-ioctl2, in order to clean it up\n   - several driver fixes and improvements.\"\n\n* \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (174 commits)\n  v4l: Export v4l2-common.h in include/linux/Kbuild\n  media: Revert \"[media] Terratec Cinergy S2 USB HD Rev.2\"\n  [media] media: Use pr_info not homegrown pr_reg macro\n  [media] Terratec Cinergy S2 USB HD Rev.2\n  [media] v4l: Correct conflicting V4L2 subdev selection API documentation\n  [media] Feature removal: V4L2 selections API target and flag definitions\n  [media] v4l: Unify selection flags documentation\n  [media] v4l: Unify selection flags\n  [media] v4l: Common documentation for selection targets\n  [media] v4l: Unify selection targets across V4L2 and V4L2 subdev interfaces\n  [media] v4l: Remove \"_ACTUAL\" from subdev selection API target definition names\n  [media] V4L: Remove \"_ACTIVE\" from the selection target name definitions\n  [media] media: dvb-usb: print mac address via native %pM\n  [media] s5p-tv: Use module_i2c_driver in sii9234_drv.c file\n  [media] media: gpio-ir-recv: add allowed_protos for platform data\n  [media] s5p-jpeg: Use module_platform_driver in jpeg-core.c file\n  [media] saa7134: fix spelling of detach in label\n  [media] cx88-blackbird: replace ioctl by unlocked_ioctl\n  [media] cx88: don\u0027t use current_norm\n  [media] cx88: fix a number of v4l2-compliance violations\n  ...\n"
    },
    {
      "commit": "4a8616920860920abaa51193146fe36b38ef09aa",
      "tree": "306a64ebcfaaae76b1b45d8f8916e6f68a190255",
      "parents": [
        "8dacc7da69a491c515851e68de6036f21b5663ce"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Fri Jul 20 17:29:55 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:16:01 2012 -0700"
      },
      "message": "libceph: clean up con flags\n\nRename flags with CON_FLAG prefix, move the definitions into the c file,\nand (better) document their meaning.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "8dacc7da69a491c515851e68de6036f21b5663ce",
      "tree": "72e96abb5bc27d2a185cdea2f08a090302f0ede3",
      "parents": [
        "d7353dd5aaf22ed611fbcd0d4a4a12fb30659290"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Fri Jul 20 17:24:40 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:16:00 2012 -0700"
      },
      "message": "libceph: replace connection state bits with states\n\nUse a simple set of 6 enumerated values for the socket states (CON_STATE_*)\nand use those instead of the state bits.  All of the con-\u003estate checks are\nnow under the protection of the con mutex, so this is safe.  It also\nsimplifies many of the state checks because we can check for anything other\nthan the expected state instead of various bits for races we can think of.\n\nThis appears to hold up well to stress testing both with and without socket\nfailure injection on the server side.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "aa711ee3402ad10ffd5b70ce0417fadc9a95cccf",
      "tree": "2400f84b9bc87fbd989844c4e2462809f69e9a96",
      "parents": [
        "bd919d45aa61c19d9ed82548d6deb06bcae31153"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@inktank.com",
        "time": "Fri Jul 13 20:35:11 2012 -0500"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:47 2012 -0700"
      },
      "message": "ceph: define snap counts as u32 everywhere\n\nThere are two structures in which a count of snapshots are\nmaintained:\n\n    struct ceph_snap_context {\n\t...\n        u32 num_snaps;\n\t...\n    }\nand\n    struct ceph_snap_realm {\n\t...\n        u32 num_prior_parent_snaps;   /*  had prior to parent_since */\n\t...\n        u32 num_snaps;\n\t...\n    }\n\nThese fields never take on negative values (e.g., to hold special\nmeaning), and so are really inherently unsigned.  Furthermore they\ntake their value from over-the-wire or on-disk formatted 32-bit\nvalues.\n\nSo change their definition to have type u32, and change some spots\nelsewhere in the code to account for this change.\n\nSigned-off-by: Alex Elder \u003celder@inktank.com\u003e\nReviewed-by: Josh Durgin \u003cjosh.durgin@inktank.com\u003e\n"
    },
    {
      "commit": "546f04ef716dd49521774653d8b032a7d64c05d9",
      "tree": "162f548fc7a81b05eb1db715997b3a04693c1bcc",
      "parents": [
        "1fe60e51a3744528f3939b1b1167ca909133d9ae"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:23 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:23 2012 -0700"
      },
      "message": "libceph: support crush tunables\n\nThe server side recently added support for tuning some magic\ncrush variables. Decode these variables if they are present, or use the\ndefault values if they are not present.\n\nCorresponds to ceph.git commit 89af369c25f274fe62ef730e5e8aad0c54f1e5a5.\n\nSigned-off-by: caleb miles \u003ccaleb.miles@inktank.com\u003e\nReviewed-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@inktank.com\u003e\n"
    },
    {
      "commit": "27c1ee3f929555b71fa39ec0d81a7e7185de1b16",
      "tree": "42e40bdfe4efac660d650658019391536ce67a42",
      "parents": [
        "37cd9600a9e20359b0283983c9e3a55d84347168",
        "086ff4b3a7fb9cdf41e6a5d0ccd99b86d84633a1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:34 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge Andrew\u0027s first set of patches:\n \"Non-MM patches:\n\n   - lots of misc bits\n\n   - tree-wide have_clk() cleanups\n\n   - quite a lot of printk tweaks.  I draw your attention to \"printk:\n     convert the format for KERN_\u003cLEVEL\u003e to a 2 byte pattern\" which\n     looks a bit scary.  But afaict it\u0027s solid.\n\n   - backlight updates\n\n   - lib/ feature work (notably the addition and use of memweight())\n\n   - checkpatch updates\n\n   - rtc updates\n\n   - nilfs updates\n\n   - fatfs updates (partial, still waiting for acks)\n\n   - kdump, proc, fork, IPC, sysctl, taskstats, pps, etc\n\n   - new fault-injection feature work\"\n\n* Merge emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (128 commits)\n  drivers/misc/lkdtm.c: fix missing allocation failure check\n  lib/scatterlist: do not re-write gfp_flags in __sg_alloc_table()\n  fault-injection: add tool to run command with failslab or fail_page_alloc\n  fault-injection: add selftests for cpu and memory hotplug\n  powerpc: pSeries reconfig notifier error injection module\n  memory: memory notifier error injection module\n  PM: PM notifier error injection module\n  cpu: rewrite cpu-notifier-error-inject module\n  fault-injection: notifier error injection\n  c/r: fcntl: add F_GETOWNER_UIDS option\n  resource: make sure requested range is included in the root range\n  include/linux/aio.h: cpp-\u003eC conversions\n  fs: cachefiles: add support for large files in filesystem caching\n  pps: return PTR_ERR on error in device_create\n  taskstats: check nla_reserve() return\n  sysctl: suppress kmemleak messages\n  ipc: use Kconfig options for __ARCH_WANT_[COMPAT_]IPC_PARSE_VERSION\n  ipc: compat: use signed size_t types for msgsnd and msgrcv\n  ipc: allow compat IPC version field parsing if !ARCH_WANT_OLD_COMPAT_IPC\n  ipc: add COMPAT_SHMLBA support\n  ...\n"
    },
    {
      "commit": "1d151c337d79fa3de88654d2514f58fbd916a8e0",
      "tree": "79f96ea4b081f310aa62246e879224467b092261",
      "parents": [
        "65fed8f6f23070b56d0ed3841173ddd410130a89"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Mon Jul 30 14:43:00 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:21 2012 -0700"
      },
      "message": "c/r: fcntl: add F_GETOWNER_UIDS option\n\nWhen we restore file descriptors we would like them to look exactly as\nthey were at dumping time.\n\nWith help of fcntl it\u0027s almost possible, the missing snippet is file\nowners UIDs.\n\nTo be able to read their values the F_GETOWNER_UIDS is introduced.\n\nThis option is valid iif CONFIG_CHECKPOINT_RESTORE is turned on, otherwise\nreturning -EINVAL.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserge@hallyn.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7e1becb078c2b996420a61f2a411ef19335e2da",
      "tree": "dd4f700147f69579db0ae79feadcdc7d93e6c942",
      "parents": [
        "98c350cda2c14a343d34ea01a3d9c24fea5ec66d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Jul 30 14:42:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:21 2012 -0700"
      },
      "message": "include/linux/aio.h: cpp-\u003eC conversions\n\nConvert init_sync_kiocb() from a nasty macro into a nice C function.  The\nstruct assignment trick takes care of zeroing all unmentioned fields.\nShrinks fs/read_write.o\u0027s .text from 9857 bytes to 9714.\n\nAlso demacroize is_sync_kiocb() and aio_ring_avail().  The latter fixes an\narg-referenced-multiple-times hand grenade.\n\nCc: Junxiao Bi \u003cjunxiao.bi@oracle.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1d7e01d7877a397655277a920aeaa3830ed9461",
      "tree": "26ba70159355ba60d835cef1a417f03eaec0148c",
      "parents": [
        "05ba3f1aa1b04e921068249dd52a80bc84c2aeb4"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Mon Jul 30 14:42:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:21 2012 -0700"
      },
      "message": "ipc: use Kconfig options for __ARCH_WANT_[COMPAT_]IPC_PARSE_VERSION\n\nRather than #define the options manually in the architecture code, add\nKconfig options for them and select them there instead.  This also allows\nus to select the compat IPC version parsing automatically for platforms\nusing the old compat IPC interface.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: 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"
    }
  ],
  "next": "05ba3f1aa1b04e921068249dd52a80bc84c2aeb4"
}
