)]}'
{
  "log": [
    {
      "commit": "7b59ebcd178b5b1d03760c89b318c7a7fdadd051",
      "tree": "7ea73369fc442399aef60f30960718fca32f272c",
      "parents": [
        "4631a9a1517654748aaf89cbc46503819a29eb30"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sat Feb 23 15:23:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:12:13 2008 -0800"
      },
      "message": "UML: update defconfig\n\nUpdate defconfig.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "536788fe2d28e11db6aeda74207d95d750fb761f",
      "tree": "73df2d3a46c542c71d3a84c20c8fd1ce617386a3",
      "parents": [
        "2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Fri Feb 08 04:22:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:42 2008 -0800"
      },
      "message": "uml: runtime host VMSPLIT detection\n\nCalculate TASK_SIZE at run-time by figuring out the host\u0027s VMSPLIT - this is\nneeded on i386 if UML is to run on hosts with varying VMSPLITs without\nrecompilation.\n\nTASK_SIZE is now defined in terms of a variable, task_size.  This gets rid of\nan include of pgtable.h from processor.h, which can cause include loops.\n\nOn i386, task_size is calculated early in boot by probing the address space in\na binary search to figure out where the boundary between usable and non-usable\nmemory is.  This tries to make sure that a page that is considered to be in\nuserspace is, or can be made, read-write.  I\u0027m concerned about a system-global\nVDSO page in kernel memory being hit and considered to be a userspace page.\n\nOn x86_64, task_size is just the old value of CONFIG_TOP_ADDR.\n\nA bunch of config variable are gone now.  CONFIG_TOP_ADDR is directly replaced\nby TASK_SIZE.  NEST_LEVEL is gone since the relocation of the stubs makes it\nirrelevant.  All the HOST_VMSPLIT stuff is gone.  All references to these in\narch/um/Makefile are also gone.\n\nI noticed and fixed a missing extern in os.h when adding os_get_task_size.\n\nNote: This has been revised to fix the 32-bit UML on 64-bit host bug that\nMiklos ran into.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "966f1d8f344bcec3db7d774a4ba3ab0dedfad873",
      "tree": "a94053f180154dc526b1fc85616d37019a19e200",
      "parents": [
        "2aa9c5db8e1eadf12a6c938dbd3e39ba6b923b8c"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:32 2008 -0800"
      },
      "message": "uml: defconfig tweaks\n\nTweak the UML defconfig -\n      we probably don\u0027t need 256 old-style ptys - this slows down udev\nnoticably\n      enable hostfs\n      disable slab debugging - another noticable performance hit\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54ae36f24b103e521dd683f66fe72b0584ccb7e2",
      "tree": "1504968363c0935479ebd28e710562d8046dd884",
      "parents": [
        "605c1e57690fddbd11347ec6788ff77c527994dd"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:09 2007 -0700"
      },
      "message": "uml: fix stub address calculations\n\nThe calculation of CONFIG_STUB_CODE and CONFIG_STUB_DATA didn\u0027t take into\naccount anything but 3G/1G and 2G/2G, leaving the other vmsplits out in the\ncold.\n\nI\u0027d rather not duplicate the four known host vmsplit cases for each of these\nsymbols.  I\u0027d also like to calculate them based on the highest userspace\naddress.\n\nThe Kconfig language seems not to allow calculation of hex constants, so I\nmoved this to as-layout.h.  CONFIG_STUB_CODE, CONFIG_STUB_DATA, and\nCONFIG_STUB_START are now gone.  In their place are STUB_CODE, STUB_DATA, and\nSTUB_START in as-layout.h.\n\ni386 and x86_64 seem to differ as to whether an unadorned constant is an int\nor a long, so I cast them to unsigned long so they can be printed\nconsistently.  However, they are also used in stub.S, where C types don\u0027t work\nso well.  So, there are ASM_ versions of these constants for use in stub.S.  I\nalso ifdef-ed the non-asm-friendly portion of as-layout.h.\n\nWith this in place, most of the rest of this patch is changing CONFIG_STUB_*\nto STUB_*, except in stub.S, where they are changed to ASM_STUB_*.\n\ndefconfig has the old symbols deleted.\n\nI also print these addresses out in case there is any problem mapping them on\nthe host.\n\nThe two stub.S files had some trailing whitespace, so that is cleaned up here.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2753a6d199791a6abc75d9f657e3457fe61705f",
      "tree": "c4cda30f216d6c045ca2b83bee1fa6bc4dfc3de3",
      "parents": [
        "791a644a8d73a9b95515f074afbb3caa0a9964fa"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:08 2007 -0700"
      },
      "message": "uml: tickless support\n\nEnable tickless support.\n\nCONFIG_TICK_ONESHOT and CONFIG_NO_HZ are enabled.\n\nitimer_clockevent gets CLOCK_EVT_FEAT_ONESHOT and an implementation of\n.set_next_event.\n\nCONFIG_UML_REAL_TIME_CLOCK goes away because it only makes sense when there is\na clock ticking away all the time.  timer_handler now just calls do_IRQ once\nwithout trying to figure out how many ticks to emulate.\n\nThe idle loop now needs to turn ticking on and off.\n\nUserspace ticks keep happening as usual.  However, the userspace loop keep\ntrack of when the next wakeup should happen and suppresses process ticks until\nthat happens.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31ccc1f524b626abcf5e043ad32b881219223c34",
      "tree": "419284a887fad9dab58969531cf6c53ca0402944",
      "parents": [
        "d83d2aa9485d996cfd89f04389b419c6727faacb"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:08 2007 -0700"
      },
      "message": "uml: GENERIC_CLOCKEVENTS support\n\nEnable CONFIG_GENERIC_CLOCKEVENTS.\n\ntimer_irq gets its name changed to timer_handler, and becomes the recipient of\ntimer signals.\n\nThe clock_event_device is set up to imitate the current ticking clock, i.e.\nCLOCK_EVT_FEAT_ONESHOT is not enabled yet.\n\ndisable_timer now doesn\u0027t ignore SIGALRM and SIGVTALRM because that breaks\ndelay calibration.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54fa0ba40698af6d6735ade024293bb51cc4d4b3",
      "tree": "a6280ede4f15462316660831cf26ef7394b60b6a",
      "parents": [
        "058ac308f3dd34ce4e2dbf938258975ced14b809"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:07 2007 -0700"
      },
      "message": "uml: sysrq and mconsole fixes\n\nFix the passing of printk output back to the mconsole client.  The existing\ncode was somewhat confused, accumulating output in a buffer, but writing it\nout entirely whenever a new chunk was added.  This is fixed.\n\nThe earlier include cleanups caused linux/sysrq.h to not be included - this is\nfixed by adding the include back, under CONFIG_MAGIC_SYSRQ.\n\nCONFIG_MAGIC_SYSRQ is also defaulted to on in defconfig.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42fda66387daa53538ae13a2c858396aaf037158",
      "tree": "77955a91a958fde7be47cb0ff23ac9e1248217db",
      "parents": [
        "a1ff5878d2628bbe1e42821c024c96f48318f683"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:26:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:05 2007 -0700"
      },
      "message": "uml: throw out CONFIG_MODE_TT\n\nThis patchset throws out tt mode, which has been non-functional for a while.\n\nThis is done in phases, interspersed with code cleanups on the affected files.\n\nThe removal is done as follows:\n\tremove all code, config options, and files which depend on\nCONFIG_MODE_TT\n\tget rid of the CHOOSE_MODE macro, which decided whether to\ncall tt-mode or skas-mode code, and replace invocations with their\nskas portions\n\treplace all now-trivial procedures with their skas equivalents\n\nThere are now a bunch of now-redundant pieces of data structures, including\nmode-specific pieces of the thread structure, pt_regs, and mm_context.  These\nare all replaced with their skas-specific contents.\n\nAs part of the ongoing style compliance project, I made a style pass over all\nfiles that were changed.  There are three such patches, one for each phase,\ncovering the files affected by that phase but no later ones.\n\nI noticed that we weren\u0027t freeing the LDT state associated with a process when\nit exited, so that\u0027s fixed in one of the later patches.\n\nThe last patch is a tidying patch which I\u0027ve had for a while, but which caused\ninexplicable crashes under tt mode.  Since that is no longer a problem, this\ncan now go in.\n\nThis patch:\n\nStart getting rid of tt mode support.\n\nThis patch throws out CONFIG_MODE_TT and all config options, code, and files\nwhich depend on it.\n\nCONFIG_MODE_SKAS is gone and everything that depends on it is included\nunconditionally.\n\nThe few changed lines are in re-written Kconfig help, lines which needed\nsomething skas-related removed from them, and a few more which weren\u0027t\nstrictly deletions.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d9ce177e68645945e3366cfe2d66ee3c28cd4f2",
      "tree": "a98a3a8b0f1e92f0b8f9ecb44b67bb46c3b4451a",
      "parents": [
        "3e1f900bff40460d7bbab0ccd1a9efc3c70aee49"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jul 19 14:30:14 2007 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 14:37:05 2007 -0700"
      },
      "message": "i386: Allow KVM on i386 nonpae\n\nCurrently, CONFIG_X86_CMPXCHG64 both enables boot-time checking of\nthe cmpxchg64b feature and enables compilation of the set_64bit() family.\nSince the option is dependent on PAE, and since KVM depends on set_64bit(),\nthis effectively disables KVM on i386 nopae.\n\nSimplify by removing the config option altogether: the boot check is made\ndependent on CONFIG_X86_PAE directly, and the set_64bit() family is exposed\nwithout constraints.  It is up to users to check for the feature flag (KVM\ndoes not as virtualiation extensions imply its existence).\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d14ad81f800a57d3f21f8e98556c728968883e9a",
      "tree": "cbe17039283dd51654aaa5a9ac4fae9233285d96",
      "parents": [
        "75886f21e3a53a298b097103fd52e83184a89c22"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun Jul 15 23:38:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:38 2007 -0700"
      },
      "message": "uml: handle errors on opening host side of consoles\n\nIf the host side of a console can\u0027t be opened, this will now produce visible\nerror messages.\n\nenable_chan now returns a status and this is passed up to con_open and\nssl_open, which will complain if anything went wrong.\n\nThe default host device for the serial line driver is now a pts device rather\nthan a pty device since lots of hosts have LEGACY_PTYS disabled.  This had\nalways been failing on such hosts, but silently.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e18eecb8b35703a5eea73ee2b45324262029e62c",
      "tree": "8c276ae6633b8116ca366274091b00491fd50bbe",
      "parents": [
        "84812217e395f5272eac36856c0a2415d61fe139"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun Jul 15 23:38:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:38 2007 -0700"
      },
      "message": "Add generic exit-time stack-depth checking to CONFIG_DEBUG_STACK_USAGE\n\nAdd generic exit-time stack-depth checking to CONFIG_DEBUG_STACK_USAGE.\n\nThis also adds UML support.\n\nTested on UML and i386.\n\n[akpm@linux-foundation.org: cleanups, speedups, tweaks]\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02239c29967418284c05d58971894d658575e78c",
      "tree": "be37214b7311729ff77afb00dca8de4f8bb7d7af",
      "parents": [
        "c14b84949e127560084c7c56b365931c71c60768"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Thu May 10 22:22:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:34 2007 -0700"
      },
      "message": "uml: shrink kernel stacks\n\nMake kernel stacks be 1 page on i386 and 2 pages on x86_64.  These match the\nhost values.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0949be35095b53dbaa72db700cb5074c5c249629",
      "tree": "4dcca21a4e726dae5dd7afcaaebff2a5dd154031",
      "parents": [
        "f5e8861583a591020176c90c10c6a130fed4f3ec"
      ],
      "author": {
        "name": "Simon Arlott",
        "email": "simon@arlott.org",
        "time": "Wed May 02 19:27:05 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:05 2007 +0200"
      },
      "message": "[PATCH] i386: Add an option for the VIA C7 which sets appropriate L1 cache\n\nThe VIA C7 is a 686 (with TSC) that supports MMX, SSE and SSE2, it also has\na cache line length of 64 according to\nhttp://www.digit-life.com/articles2/cpu/rmma-via-c7.html.  This patch sets\ngcc to -march\u003d686 and select s the correct cache shift.\n\nSigned-off-by: Simon Arlott \u003csimon@fire.lp0.eu\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "469226a431f553a7b3ec17d87ce3c2d1c6c25fb2",
      "tree": "4fa99835c10b4bc70e259c5b42e07ade4388fb26",
      "parents": [
        "29ac1c2142346e1e0e072f41df31688fc42ff540"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Jul 10 04:45:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:24 2006 -0700"
      },
      "message": "[PATCH] uml: remove syscall debugging\n\nEliminate an unused debug option.\n\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "347b3dc2faf34d63a96b41e3244b743cc72a2aa0",
      "tree": "4bd6cb2c965a788d140da97f9397e5e1ffa35337",
      "parents": [
        "e3104f50d89b1fffe1fd973e32248a5c7f1bb41e"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon May 01 12:15:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 01 18:17:44 2006 -0700"
      },
      "message": "[PATCH] uml: update defconfig\n\nBring defconfig up to date.\n\nAlso disable CONFIG_BLK_DEV_UBD_SYNC by default.  By performing synchronous\nI/O to the host, it slows things down, only protects against host crashes, and\ncan make a UML appear to hang while it waits for the host\u0027s disk.\n\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d67b569f5f620c0fb95d5212642746b7ba9d29e4",
      "tree": "c7ef10c906dd83911e10988c6cea6d7d5644e072",
      "parents": [
        "1322ad41513f8f9196801f53cc0851df056f3478"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Thu Jul 07 17:56:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:44 2005 -0700"
      },
      "message": "[PATCH] uml: skas0 - separate kernel address space on stock hosts\n\nUML has had two modes of operation - an insecure, slow mode (tt mode) in\nwhich the kernel is mapped into every process address space which requires\nno host kernel modifications, and a secure, faster mode (skas mode) in\nwhich the UML kernel is in a separate host address space, which requires a\npatch to the host kernel.\n\nThis patch implements something very close to skas mode for hosts which\ndon\u0027t support skas - I\u0027m calling this skas0.  It provides the security of\nthe skas host patch, and some of the performance gains.\n\nThe two main things that are provided by the skas patch, /proc/mm and\nPTRACE_FAULTINFO, are implemented in a way that require no host patch.\n\nFor the remote address space changing stuff (mmap, munmap, and mprotect),\nwe set aside two pages in the process above its stack, one of which\ncontains a little bit of code which can call mmap et al.\n\nTo update the address space, the system call information (system call\nnumber and arguments) are written to the stub page above the code.  The\n%esp is set to the beginning of the data, the %eip is set the the start of\nthe stub, and it repeatedly pops the information into its registers and\nmakes the system call until it sees a system call number of zero.  This is\nto amortize the cost of the context switch across multiple address space\nupdates.\n\nWhen the updates are done, it SIGSTOPs itself, and the kernel process\ncontinues what it was doing.\n\nFor a PTRACE_FAULTINFO replacement, we set up a SIGSEGV handler in the\nchild, and let it handle segfaults rather than nullifying them.  The\nhandler is in the same page as the mmap stub.  The second page is used as\nthe stack.  The handler reads cr2 and err from the sigcontext, sticks them\nat the base of the stack in a faultinfo struct, and SIGSTOPs itself.  The\nkernel then reads the faultinfo and handles the fault.\n\nA complication on x86_64 is that this involves resetting the registers to\nthe segfault values when the process is inside the kill system call.  This\nbreaks on x86_64 because %rcx will contain %rip because you tell SYSRET\nwhere to return to by putting the value in %rcx.  So, this corrupts $rcx on\nreturn from the segfault.  To work around this, I added an\narch_finish_segv, which on x86 does nothing, but which on x86_64 ptraces\nthe child back through the sigreturn.  This causes %rcx to be restored by\nsigreturn and avoids the corruption.  Ultimately, I think I will replace\nthis with the trick of having it send itself a blocked signal which will be\nunblocked by the sigreturn.  This will allow it to be stopped just after\nthe sigreturn, and PTRACE_SYSCALLed without all the back-and-forth of\nPTRACE_SYSCALLing it through sigreturn.\n\nThis runs on a stock host, so theoretically (and hopefully), tt mode isn\u0027t\nneeded any more.  We need to make sure that this is better in every way\nthan tt mode, though.  I\u0027m concerned about the speed of address space\nupdates and page fault handling, since they involve extra round-trips to\nthe child.  We can amortize the round-trip cost for large address space\nupdates by writing all of the operations to the data page and having the\nchild execute them all at the same time.  This will help fork and exec, but\nnot page faults, since they involve only one page.\n\nI can\u0027t think of any way to help page faults, except to add something like\nPTRACE_FAULTINFO to the host.  There is PTRACE_SIGINFO, but UML doesn\u0027t use\nsiginfo for SIGSEGV (or anything else) because there isn\u0027t enough\ninformation in the siginfo struct to handle page faults (the faulting\noperation type is missing).  Adding that would make PTRACE_SIGINFO a usable\nequivalent to PTRACE_FAULTINFO.\n\nAs for the code itself:\n\n- The system call stub is in arch/um/kernel/sys-$(SUBARCH)/stub.S.  It is\n  put in its own section of the binary along with stub_segv_handler in\n  arch/um/kernel/skas/process.c.  This is manipulated with run_syscall_stub\n  in arch/um/kernel/skas/mem_user.c.  syscall_stub will execute any system\n  call at all, but it\u0027s only used for mmap, munmap, and mprotect.\n\n- The x86_64 stub calls sigreturn by hand rather than allowing the normal\n  sigreturn to happen, because the normal sigreturn is a SA_RESTORER in\n  UML\u0027s address space provided by libc.  Needless to say, this is not\n  available in the child\u0027s address space.  Also, it does a couple of odd\n  pops before that which restore the stack to the state it was in at the\n  time the signal handler was called.\n\n- There is a new field in the arch mmu_context, which is now a union.\n  This is the pid to be manipulated rather than the /proc/mm file\n  descriptor.  Code which deals with this now checks proc_mm to see whether\n  it should use the usual skas code or the new code.\n\n- userspace_tramp is now used to create a new host process for every UML\n  process, rather than one per UML processor.  It checks proc_mm and\n  ptrace_faultinfo to decide whether to map in the pages above its stack.\n\n- start_userspace now makes CLONE_VM conditional on proc_mm since we need\n  separate address spaces now.\n\n- switch_mm_skas now just sets userspace_pid[0] to the new pid rather\n  than PTRACE_SWITCH_MM.  There is an addition to userspace which updates\n  its idea of the pid being manipulated each time around the loop.  This is\n  important on exec, when the pid will change underneath userspace().\n\n- The stub page has a pte, but it can\u0027t be mapped in using tlb_flush\n  because it is part of tlb_flush.  This is why it\u0027s required for it to be\n  mapped in by userspace_tramp.\n\nOther random things:\n\n- The stub section in uml.lds.S is page aligned.  This page is written\n  out to the backing vm file in setup_physmem because it is mapped from\n  there into user processes.\n\n- There\u0027s some confusion with TASK_SIZE now that there are a couple of\n  extra pages that the process can\u0027t use.  TASK_SIZE is considered by the\n  elf code to be the usable process memory, which is reasonable, so it is\n  decreased by two pages.  This confuses the definition of\n  USER_PGDS_IN_LAST_PML4, making it too small because of the rounding down\n  of the uneven division.  So we round it to the nearest PGDIR_SIZE rather\n  than the lower one.\n\n- I added a missing PT_SYSCALL_ARG6_OFFSET macro.\n\n- um_mmu.h was made into a userspace-usable file.\n\n- proc_mm and ptrace_faultinfo are globals which say whether the host\n  supports these features.\n\n- There is a bad interaction between the mm.nr_ptes check at the end of\n  exit_mmap, stack randomization, and skas0.  exit_mmap will stop freeing\n  pages at the PGDIR_SIZE boundary after the last vma.  If the stack isn\u0027t\n  on the last page table page, the last pte page won\u0027t be freed, as it\n  should be since the stub ptes are there, and exit_mmap will BUG because\n  there is an unfreed page.  To get around this, TASK_SIZE is set to the\n  next lowest PGDIR_SIZE boundary and mm-\u003enr_ptes is decremented after the\n  calls to init_stub_pte.  This ensures that we know the process stack (and\n  all other process mappings) will be below the top page table page, and\n  thus we know that mm-\u003enr_ptes will be one too many, and can be\n  decremented.\n\nThings that need fixing:\n\n- We may need better assurrences that the stub code is PIC.\n\n- The stub pte is set up in init_new_context_skas.\n\n- alloc_pgdir is probably the right place.\n\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c45166be3cc666ce88fe623ad79276c943e74eff",
      "tree": "db59fdfb6834c112c99a5ab8692fe8372d7961ba",
      "parents": [
        "b05d85a87d9711f5f5f2eb05c79038d5d5ff1f44"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sun May 01 08:58:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:58:54 2005 -0700"
      },
      "message": "[PATCH] uml: support AES i586 crypto driver\n\nWe want to make possible, for the user, to enable the i586 AES implementation.\nThis requires a restructure.\n\n- Add a CONFIG_UML_X86 to notify that we are building a UML for i386.\n\n- Rename CONFIG_64_BIT to CONFIG_64BIT as is used for all other archs\n\n- Tell crypto/Kconfig that UML_X86 is as good as X86\n\n- Tell it that it must exclude not X86_64 but 64BIT, which will give the\n  same results.\n\n- Tell kbuild to descend down into arch/i386/crypto/ to build what\u0027s needed.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\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"
    }
  ]
}
