{"push_id":2714322773,"size":318,"distinct_size":318,"ref":"refs/heads/polaris-o-oss","head":"8d17f6b421e2e45c9f6551dd6f6547a9057c4a44","before":"c8ee59f9c0f4c5b680cf2ea6d7bd174e5c857903","commits":[{"sha":"61c51da2b4bd8abb2920f4dec0861a6fe5b8b486","author":{"name":"Neal Cardwell","email":"58d301c70203188c35d379474c26c9cc0636a189@google.com"},"message":"tcp_bbr: reset full pipe detection on loss recovery undo\n\ncommit 2f6c498e4f15d27852c04ed46d804a39137ba364 upstream.\n\nFix BBR so that upon notification of a loss recovery undo BBR resets\nthe full pipe detection (STARTUP exit) state machine.\n\nUnder high reordering, reordering events can be interpreted as loss.\nIf the reordering and spurious loss estimates are high enough, this\ncould previously cause BBR to spuriously estimate that the pipe is\nfull.\n\nSince spurious loss recovery means that our overall sending will have\nslowed down spuriously, this commit gives a flow more time to probe\nrobustly for bandwidth and decide the pipe is really full.\n\nSigned-off-by: Neal Cardwell <ncardwell@google.com>\nReviewed-by: Yuchung Cheng <ycheng@google.com>\nAcked-by: Soheil Hassas Yeganeh <soheil@google.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/61c51da2b4bd8abb2920f4dec0861a6fe5b8b486"},{"sha":"8824b2d7abfb113e33eae268ea22b11eb15b30b4","author":{"name":"Neal Cardwell","email":"58d301c70203188c35d379474c26c9cc0636a189@google.com"},"message":"tcp_bbr: reset long-term bandwidth sampling on loss recovery undo\n\ncommit 600647d467c6d04b3954b41a6ee1795b5ae00550 upstream.\n\nFix BBR so that upon notification of a loss recovery undo BBR resets\nlong-term bandwidth sampling.\n\nUnder high reordering, reordering events can be interpreted as loss.\nIf the reordering and spurious loss estimates are high enough, this\ncan cause BBR to spuriously estimate that we are seeing loss rates\nhigh enough to trigger long-term bandwidth estimation. To avoid that\nproblem, this commit resets long-term bandwidth sampling on loss\nrecovery undo events.\n\nSigned-off-by: Neal Cardwell <ncardwell@google.com>\nReviewed-by: Yuchung Cheng <ycheng@google.com>\nAcked-by: Soheil Hassas Yeganeh <soheil@google.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/8824b2d7abfb113e33eae268ea22b11eb15b30b4"},{"sha":"b5fd58e997cf6294d2c027d585f7dcbd1e096bce","author":{"name":"Tom Lendacky","email":"bcbe2d8614c98cf419bfc4320d4a7a260d53de8f@amd.com"},"message":"x86/boot: Add early cmdline parsing for options with arguments\n\ncommit e505371dd83963caae1a37ead9524e8d997341be upstream.\n\nAdd a cmdline_find_option() function to look for cmdline options that\ntake arguments. The argument is returned in a supplied buffer and the\nargument length (regardless of whether it fits in the supplied buffer)\nis returned, with -1 indicating not found.\n\nSigned-off-by: Tom Lendacky <thomas.lendacky@amd.com>\nReviewed-by: Thomas Gleixner <tglx@linutronix.de>\nCc: Alexander Potapenko <glider@google.com>\nCc: Andrey Ryabinin <aryabinin@virtuozzo.com>\nCc: Andy Lutomirski <luto@kernel.org>\nCc: Arnd Bergmann <arnd@arndb.de>\nCc: Borislav Petkov <bp@alien8.de>\nCc: Brijesh Singh <brijesh.singh@amd.com>\nCc: Dave Young <dyoung@redhat.com>\nCc: Dmitry Vyukov <dvyukov@google.com>\nCc: Jonathan Corbet <corbet@lwn.net>\nCc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>\nCc: Larry Woodman <lwoodman@redhat.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Matt Fleming <matt@codeblueprint.co.uk>\nCc: Michael S. Tsirkin <mst@redhat.com>\nCc: Paolo Bonzini <pbonzini@redhat.com>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Radim Krčmář <rkrcmar@redhat.com>\nCc: Rik van Riel <riel@redhat.com>\nCc: Toshimitsu Kani <toshi.kani@hpe.com>\nCc: kasan-dev@googlegroups.com\nCc: kvm@vger.kernel.org\nCc: linux-arch@vger.kernel.org\nCc: linux-doc@vger.kernel.org\nCc: linux-efi@vger.kernel.org\nCc: linux-mm@kvack.org\nLink: http://lkml.kernel.org/r/36b5f97492a9745dce27682305f990fc20e5cf8a.1500319216.git.thomas.lendacky@amd.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/b5fd58e997cf6294d2c027d585f7dcbd1e096bce"},{"sha":"13be4483bb487176c48732b887780630a141ae96","author":{"name":"Richard Fellner","email":"78657ab32be32a73f8ec59df94b36caa6c34754f@student.tugraz.at"},"message":"KAISER: Kernel Address Isolation\n\n\nThis patch introduces our implementation of KAISER (Kernel Address Isolation to\nhave Side-channels Efficiently Removed), a kernel isolation technique to close\nhardware side channels on kernel address information.\n\nMore information about the patch can be found on:\n\n        https://github.com/IAIK/KAISER\n\nFrom: Richard Fellner <richard.fellner@student.tugraz.at>\nFrom: Daniel Gruss <daniel.gruss@iaik.tugraz.at>\nSubject: [RFC, PATCH] x86_64: KAISER - do not map kernel in user mode\nDate: Thu, 4 May 2017 14:26:50 +0200\nLink: http://marc.info/?l=linux-kernel&m=149390087310405&w=2\nKaiser-4.10-SHA1: c4b1831d44c6144d3762ccc72f0c4e71a0c713e5\n\nTo: <linux-kernel@vger.kernel.org>\nTo: <kernel-hardening@lists.openwall.com>\nCc: <clementine.maurice@iaik.tugraz.at>\nCc: <moritz.lipp@iaik.tugraz.at>\nCc: Michael Schwarz <michael.schwarz@iaik.tugraz.at>\nCc: Richard Fellner <richard.fellner@student.tugraz.at>\nCc: Ingo Molnar <mingo@kernel.org>\nCc: <kirill.shutemov@linux.intel.com>\nCc: <anders.fogh@gdata-adan.de>\n\nAfter several recent works [1,2,3] KASLR on x86_64 was basically\nconsidered dead by many researchers. We have been working on an\nefficient but effective fix for this problem and found that not mapping\nthe kernel space when running in user mode is the solution to this\nproblem [4] (the corresponding paper [5] will be presented at ESSoS17).\n\nWith this RFC patch we allow anybody to configure their kernel with the\nflag CONFIG_KAISER to add our defense mechanism.\n\nIf there are any questions we would love to answer them.\nWe also appreciate any comments!\n\nCheers,\nDaniel (+ the KAISER team from Graz University of Technology)\n\n[1] http://www.ieee-security.org/TC/SP2013/papers/4977a191.pdf\n[2] https://www.blackhat.com/docs/us-16/materials/us-16-Fogh-Using-Undocumented-CPU-Behaviour-To-See-Into-Kernel-Mode-And-Break-KASLR-In-The-Process.pdf\n[3] https://www.blackhat.com/docs/us-16/materials/us-16-Jang-Breaking-Kernel-Address-Space-Layout-Randomization-KASLR-With-Intel-TSX.pdf\n[4] https://github.com/IAIK/KAISER\n[5] https://gruss.cc/files/kaiser.pdf\n\n[patch based also on\nhttps://raw.githubusercontent.com/IAIK/KAISER/master/KAISER/0001-KAISER-Kernel-Address-Isolation.patch]\n\nSigned-off-by: Richard Fellner <richard.fellner@student.tugraz.at>\nSigned-off-by: Moritz Lipp <moritz.lipp@iaik.tugraz.at>\nSigned-off-by: Daniel Gruss <daniel.gruss@iaik.tugraz.at>\nSigned-off-by: Michael Schwarz <michael.schwarz@iaik.tugraz.at>\nAcked-by: Jiri Kosina <jkosina@suse.cz>\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/13be4483bb487176c48732b887780630a141ae96"},{"sha":"8f0baadf2bea3861217763734b57e1dd2db703dd","author":{"name":"Dave Hansen","email":"71bcd3d88361b22cd828f9a350d19d8775f56d4e@linux.intel.com"},"message":"kaiser: merged update\n\n\nMerged fixes and cleanups, rebased to 4.9.51 tree (no 5-level paging).\n\nSigned-off-by: Dave Hansen <dave.hansen@linux.intel.com>\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/8f0baadf2bea3861217763734b57e1dd2db703dd"},{"sha":"ac2f1018ac210cfedcfab82dbafbda4e2db7ed08","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: do not set _PAGE_NX on pgd_none\n\n\nnative_pgd_clear() uses native_set_pgd(), so native_set_pgd() must\navoid setting the _PAGE_NX bit on an otherwise pgd_none() entry:\nusually that just generated a warning on exit, but sometimes\nmore mysterious and damaging failures (our production machines\ncould not complete booting).\n\nThe original fix to this just avoided adding _PAGE_NX to\nan empty entry; but eventually more problems surfaced with kexec,\nand EFI mapping expected to be a problem too.  So now instead\nchange native_set_pgd() to update shadow only if _PAGE_USER:\n\nA few places (kernel/machine_kexec_64.c, platform/efi/efi_64.c for sure)\nuse set_pgd() to set up a temporary internal virtual address space, with\nphysical pages remapped at what Kaiser regards as userspace addresses:\nKaiser then assumes a shadow pgd follows, which it will try to corrupt.\n\nThis appears to be responsible for the recent kexec and kdump failures;\nthough it's unclear how those did not manifest as a problem before.\nAh, the shadow pgd will only be assumed to \"follow\" if the requested\npgd is on an even-numbered page: so I suppose it was going wrong 50%\nof the time all along.\n\nWhat we need is a flag to set_pgd(), to tell it we're dealing with\nuserspace.  Er, isn't that what the pgd's _PAGE_USER bit is saying?\nAdd a test for that.  But we cannot do the same for pgd_clear()\n(which may be called to clear corrupted entries - set aside the\nquestion of \"corrupt in which pgd?\" until later), so there just\nrely on pgd_clear() not being called in the problematic cases -\nwith a WARN_ON_ONCE() which should fire half the time if it is.\n\nBut this is getting too big for an inline function: move it into\narch/x86/mm/kaiser.c (which then demands a boot/compressed mod);\nand de-void and de-space native_get_shadow/normal_pgd() while here.\n\nAlso make an unnecessary change to KASLR's init_trampoline(): it was\nusing set_pgd() to assign a pgd-value to a global variable (not in a\npg directory page), which was rather scary given Kaiser's previous\nset_pgd() implementation: not a problem now, but too scary to leave\nas was, it could easily blow up if we have to change set_pgd() again.\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/ac2f1018ac210cfedcfab82dbafbda4e2db7ed08"},{"sha":"0994a2cf8fe4e884bad4810681117a7d0096c8e7","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: stack map PAGE_SIZE at THREAD_SIZE-PAGE_SIZE\n\n\nKaiser only needs to map one page of the stack; and\nkernel/fork.c did not build on powerpc (no __PAGE_KERNEL).\nIt's all cleaner if linux/kaiser.h provides kaiser_map_thread_stack()\nand kaiser_unmap_thread_stack() wrappers around asm/kaiser.h's\nkaiser_add_mapping() and kaiser_remove_mapping().  And use\nlinux/kaiser.h in init/main.c to avoid the #ifdefs there.\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/0994a2cf8fe4e884bad4810681117a7d0096c8e7"},{"sha":"7a92e20d157f02d0259e2799dea43c9fa1a4541a","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: fix build and FIXME in alloc_ldt_struct()\n\n\nInclude linux/kaiser.h instead of asm/kaiser.h to build ldt.c without\nCONFIG_KAISER.  kaiser_add_mapping() does already return an error code,\nso fix the FIXME.\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/7a92e20d157f02d0259e2799dea43c9fa1a4541a"},{"sha":"639c005daeebab077596b034fecd6b8902a88024","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: KAISER depends on SMP\n\n\nIt is absurd that KAISER should depend on SMP, but apparently nobody\nhas tried a UP build before: which breaks on implicit declaration of\nfunction 'per_cpu_offset' in arch/x86/mm/kaiser.c.\n\nNow, you would expect that to be trivially fixed up; but looking at\nthe System.map when that block is #ifdef'ed out of kaiser_init(),\nI see that in a UP build __per_cpu_user_mapped_end is precisely at\n__per_cpu_user_mapped_start, and the items carefully gathered into\nthat section for user-mapping on SMP, dispersed elsewhere on UP.\n\nSo, some other kind of section assignment will be needed on UP,\nbut implementing that is not a priority: just make KAISER depend\non SMP for now.\n\nAlso inserted a blank line before the option, tidied up the\nbrief Kconfig help message, and added an \"If unsure, Y\".\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/639c005daeebab077596b034fecd6b8902a88024"},{"sha":"19377944317f7d1f706d7da2c7cea5c4bcb7440b","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: fix regs to do_nmi() ifndef CONFIG_KAISER\n\n\npjt has observed that nmi's second (nmi_from_kernel) call to do_nmi()\nadjusted the %rdi regs arg, rightly when CONFIG_KAISER, but wrongly\nwhen not CONFIG_KAISER.\n\nAlthough the minimal change is to add an #ifdef CONFIG_KAISER around\nthe addq line, that looks cluttered, and I prefer how the first call\nto do_nmi() handled it: prepare args in %rdi and %rsi before getting\ninto the CONFIG_KAISER block, since it does not touch them at all.\n\nAnd while we're here, place the \"#ifdef CONFIG_KAISER\" that follows\neach, to enclose the \"Unconditionally restore CR3\" comment: matching\nhow the \"Unconditionally use kernel CR3\" comment above is enclosed.\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/19377944317f7d1f706d7da2c7cea5c4bcb7440b"},{"sha":"f881e626849c62641a91a13cb5344908c6613d11","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: fix perf crashes\n\n\nAvoid perf crashes: place debug_store in the user-mapped per-cpu area\ninstead of allocating, and use page allocator plus kaiser_add_mapping()\nto keep the BTS and PEBS buffers user-mapped (that is, present in the\nuser mapping, though visible only to kernel and hardware).  The PEBS\nfixup buffer does not need this treatment.\n\nThe need for a user-mapped struct debug_store showed up before doing\nany conscious perf testing: in a couple of kernel paging oopses on\nWestmere, implicating the debug_store offset of the per-cpu area.\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/f881e626849c62641a91a13cb5344908c6613d11"},{"sha":"f43f386f0bf0380fad5483be3ac678eeee934e95","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: ENOMEM if kaiser_pagetable_walk() NULL\n\n\nkaiser_add_user_map() took no notice when kaiser_pagetable_walk() failed.\nAnd avoid its might_sleep() when atomic (though atomic at present unused).\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/f43f386f0bf0380fad5483be3ac678eeee934e95"},{"sha":"67fab0d4acb3556134127ac285b625f715b12ca1","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: tidied up asm/kaiser.h somewhat\n\n\nMainly deleting a surfeit of blank lines, and reflowing header comment.\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/67fab0d4acb3556134127ac285b625f715b12ca1"},{"sha":"be6bf01f4caa523433030a2267df57d6afefa53d","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: tidied up kaiser_add/remove_mapping slightly\n\n\nYes, unmap_pud_range_nofree()'s declaration ought to be in a\nheader file really, but I'm not sure we want to use it anyway:\nso for now just declare it inside kaiser_remove_mapping().\nAnd there doesn't seem to be such a thing as unmap_p4d_range(),\neven in a 5-level paging tree.\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/be6bf01f4caa523433030a2267df57d6afefa53d"},{"sha":"604db49610853bffcc65029886688ef151469fa8","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: align addition to x86/mm/Makefile\n\n\nUse tab not space so they line up properly, kaslr.o also.\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/604db49610853bffcc65029886688ef151469fa8"},{"sha":"61b7a404fa132ee0ffad04b0018b8d01ba5cf026","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: cleanups while trying for gold link\n\n\nWhile trying to get our gold link to work, four cleanups:\nmatched the gdt_page declaration to its definition;\nin fiddling unsuccessfully with PERCPU_INPUT(), lined up backslashes;\nlined up the backslashes according to convention in percpu-defs.h;\ndeleted the unused irq_stack_pointer addition to irq_stack_union.\n\nSad to report that aligning backslashes does not appear to help gold\nalign to 8192: but while these did not help, they are worth keeping.\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/61b7a404fa132ee0ffad04b0018b8d01ba5cf026"},{"sha":"c27cdea56c546d0a6aa9114d9f5166404f3f14dd","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: name that 0x1000 KAISER_SHADOW_PGD_OFFSET\n\n\nThere's a 0x1000 in various places, which looks better with a name.\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/c27cdea56c546d0a6aa9114d9f5166404f3f14dd"},{"sha":"1ce27de4011e57460d454f9bedd301e5b7757e68","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: delete KAISER_REAL_SWITCH option\n\n\nWe fail to see what CONFIG_KAISER_REAL_SWITCH is for: it seems to be\nleft over from early development, and now just obscures tricky parts\nof the code.  Delete it before adding PCIDs, or nokaiser boot option.\n\n(Or if there is some good reason to keep the option, then it needs\na help text - and a \"depends on KAISER\", so that all those without\nKAISER are not asked the question.  But we'd much rather delete it.)\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/1ce27de4011e57460d454f9bedd301e5b7757e68"},{"sha":"1972bb9d92066fcf7deb0d798e02c88caa45e035","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: vmstat show NR_KAISERTABLE as nr_overhead\n\n\nThe kaiser update made an interesting choice, never to free any shadow\npage tables.  Contention on global spinlock was worrying, particularly\nwith it held across page table scans when freeing.  Something had to be\ndone: I was going to add refcounting; but simply never to free them is\nan appealing choice, minimizing contention without complicating the code\n(the more a page table is found already, the less the spinlock is used).\n\nBut leaking pages in this way is also a worry: can we get away with it?\nAt the very least, we need a count to show how bad it actually gets:\nin principle, one might end up wasting about 1/256 of memory that way\n(1/512 for when direct-mapped pages have to be user-mapped, plus 1/512\nfor when they are user-mapped from the vmalloc area on another occasion\n(but we don't have vmalloc'ed stacks, so only large ldts are vmalloc'ed).\n\nAdd per-cpu stat NR_KAISERTABLE: including 256 at startup for the\nshared pgd entries, and 1 for each intermediate page table added\nthereafter for user-mapping - but leave out the 1 per mm, for its\nshadow pgd, because that distracts from the monotonic increase.\nShown in /proc/vmstat as nr_overhead (0 if kaiser not enabled).\n\nIn practice, it doesn't look so bad so far: more like 1/12000 after\nnine hours of gtests below; and movable pageblock segregation should\ntend to cluster the kaiser tables into a subset of the address space\n(if not, they will be bad for compaction too).  But production may\ntell a different story: keep an eye on this number, and bring back\nlighter freeing if it gets out of control (maybe a shrinker).\n\n[\"nr_overhead\" should of course say \"nr_kaisertable\", if it needs\nto stay; but for the moment we are being coy, preferring that when\nJoe Blow notices a new line in his /proc/vmstat, he does not get\ntoo curious about what this \"kaiser\" stuff might be.]\n\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/1972bb9d92066fcf7deb0d798e02c88caa45e035"},{"sha":"2684b12a169ee244ffc05d34234b0a3dec238c40","author":{"name":"Hugh Dickins","email":"d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com"},"message":"kaiser: enhanced by kernel and user PCIDs\n\n\nMerged performance improvements to Kaiser, using distinct kernel\nand user Process Context Identifiers to minimize the TLB flushing.\n\n[This work actually all from Dave Hansen 2017-08-30:\nstill omitting trackswitch mods, and KAISER_REAL_SWITCH deleted.]\n\nSigned-off-by: Dave Hansen <dave.hansen@linux.intel.com>\nSigned-off-by: Hugh Dickins <hughd@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/palaych/kernel_polaris_o/commits/2684b12a169ee244ffc05d34234b0a3dec238c40"}]}
{"actor":{"display_login":"palaych"}}