)]}'
{
  "log": [
    {
      "commit": "dd23aae4f5edf4e1dbd8f7f8013a754ba3253f48",
      "tree": "c7babf45f8132876e8a715f0327cf480c05c6131",
      "parents": [
        "3210f0ecdba6a81c3f8efe6f442d2e1f57db98f9"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Sep 11 15:23:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Sep 11 17:21:20 2007 -0700"
      },
      "message": "Fix select on /proc files without -\u003epoll\n\nTaneli Vähäkangas \u003cvahakang@cs.helsinki.fi\u003e reported that commit\n786d7e1612f0b0adb6046f19b906609e4fe8b1ba aka \"Fix rmmod/read/write races\nin /proc entries\" broke SBCL + SLIME combo.\n\nThe old code in do_select() used DEFAULT_POLLMASK, if couldn\u0027t find\n-\u003epoll handler.  The new code makes -\u003epoll always there and returns 0 by\ndefault, which is not correct.  Return DEFAULT_POLLMASK instead.\n\nSteps to reproduce:\n\n\tinstall emacs, SBCL, SLIME\n\temacs\n\tM-x slime\tin *inferior-lisp* buffer\n\t[watch it doing \"Connecting to Swank on port X..\"]\n\nPlease, apply before 2.6.23.\n\nP.S.: why SBCL can\u0027t just read(2) /proc/cpuinfo is a mystery.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: T Taneli Vahakangas \u003cvahakang@cs.helsinki.fi\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f23f6e08c47acbdd20e9c49a79da8c404ea168e1",
      "tree": "00c86da440e4399b4dd04e9f967acd324e0fdf78",
      "parents": [
        "d7fe0f241dceade9c8d4af75498765c5ff7f27e6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 20 15:17:02 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 04 02:00:36 2006 -0500"
      },
      "message": "[PATCH] severing poll.h -\u003e mm.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "70674f95c0a2ea694d5c39f4e514f538a09be36f",
      "tree": "906d109fafc5eafff6a90c8d866e0525fdaf6783",
      "parents": [
        "b02389e98a7b64ad5cd4823740defa8821f30bbd"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Tue Mar 28 01:56:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:04 2006 -0800"
      },
      "message": "[PATCH] Optimize select/poll by putting small data sets on the stack\n\nOptimize select and poll by a using stack space for small fd sets\n\nThis brings back an old optimization from Linux 2.0.  Using the stack is\nfaster than kmalloc.  On a Intel P4 system it speeds up a select of a\nsingle pty fd by about 13% (~4000 cycles -\u003e ~3500)\n\nIt also saves memory because a daemon hanging in select or poll will\nusually save one or two less pages.  This can add up - e.g.  if you have 10\ndaemons blocking in poll/select you save 40KB of memory.\n\nI did a patch for this long ago, but it was never applied.  This version is\na reimplementation of the old patch that tries to be less intrusive.  I\nonly did the minimal changes needed for the stack allocation.\n\nThe cut off point before external memory is allocated is currently at\n832bytes.  The system calls always allocate this much memory on the stack.\n\nThese 832 bytes are divided into 256 bytes frontend data (for the select\nbitmaps of the pollfds) and the rest of the space for the wait queues used\nby the low level drivers.  There are some extreme cases where this won\u0027t\nwork out for select and it falls back to allocating memory too early -\nespecially with very sparse large select bitmaps - but the majority of\nprocesses who only have a small number of file descriptors should be ok.\n[TBD: 832/256 might not be the best split for select or poll]\n\nI suspect more optimizations might be possible, but they would be more\ncomplicated.  One way would be to cache the select/poll context over\nmultiple system calls because typically the input values should be similar.\n Problem is when to flush the file descriptors out though.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9f72949f679df06021c9e43886c9191494fdb007",
      "tree": "f4d76ed281b34e195db7741b69a7d095e168a864",
      "parents": [
        "36a7878a224c18aa4a5e098dc93d19cf5601462b"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Jan 18 17:44:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:30 2006 -0800"
      },
      "message": "[PATCH] Add pselect/ppoll system call implementation\n\nThe following implementation of ppoll() and pselect() system calls\ndepends on the architecture providing a TIF_RESTORE_SIGMASK flag in the\nthread_info.\n\nThese system calls have to change the signal mask during their\noperation, and signal handlers must be invoked using the new, temporary\nsignal mask. The old signal mask must be restored either upon successful\nexit from the system call, or upon returning from the invoked signal\nhandler if the system call is interrupted. We can\u0027t simply restore the\noriginal signal mask and return to userspace, since the restored signal\nmask may actually block the signal which interrupted the system call.\n\nThe TIF_RESTORE_SIGMASK flag deals with this by causing the syscall exit\npath to trap into do_signal() just as TIF_SIGPENDING does, and by\ncausing do_signal() to use the saved signal mask instead of the current\nsignal mask when setting up the stack frame for the signal handler -- or\nby causing do_signal() to simply restore the saved signal mask in the\ncase where there is no handler to be invoked.\n\nThe first patch implements the sys_pselect() and sys_ppoll() system\ncalls, which are present only if TIF_RESTORE_SIGMASK is defined. That\n#ifdef should go away in time when all architectures have implemented\nit. The second patch implements TIF_RESTORE_SIGMASK for the PowerPC\nkernel (in the -mm tree), and the third patch then removes the\narch-specific implementations of sys_rt_sigsuspend() and replaces them\nwith generic versions using the same trick.\n\nThe fourth and fifth patches, provided by David Howells, implement\nTIF_RESTORE_SIGMASK for FR-V and i386 respectively, and the sixth patch\nadds the syscalls to the i386 syscall table.\n\nThis patch:\n\nAdd the pselect() and ppoll() system calls, providing core routines usable by\nthe original select() and poll() system calls and also the new calls (with\ntheir semantics w.r.t timeouts).\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
