{"push_id":1882380020,"size":50,"distinct_size":50,"ref":"refs/heads/decui/upstream-ubuntu/master-next","head":"378689d93150dc811d44d79e16a64ef0e3541e5d","before":"971971e016ebc111f33181b9ae078d3e545c573c","commits":[{"sha":"6c4fb3f8897f01b4319553feba8839b0dee4e8a2","author":{"name":"Stephen Hemminger","email":"5bfd6f4d5597453bc08688e3129fd2e4fff3505f@networkplumber.org"},"message":"vmbus: only reschedule tasklet if time limit exceeded\n\nThe change to reschedule tasklet if more data arrives in ring buffer\ncan cause performance regression if host timing is such that the\nnext response happens in small window.\n\nGo back to a modified version of the original looping behavior.\nIf the race occurs in a small time, then loop. But if the tasklet\nhas been running for a long interval due to flood, then reschedule\nthe tasklet to allow migration to ksoftirqd.\n\nSigned-off-by: Stephen Hemminger <sthemmin@microsoft.com>\nSigned-off-by: K. Y. Srinivasan <kys@microsoft.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/6c4fb3f8897f01b4319553feba8839b0dee4e8a2"},{"sha":"b9ddcae78265fb36a9849278a7e1d9fa157fb638","author":{"name":"Vitaly Kuznetsov","email":"697ca8eff99222fe467efcff4e74ccad85cd3236@redhat.com"},"message":"x86/hyperv: implement hv_get_tsc_page()\n\nTo use Hyper-V TSC page clocksource from vDSO we need to make tsc_pg\navailable. Implement hv_get_tsc_page() and add CONFIG_HYPERV_TSCPAGE to\nmake #ifdef-s simple.\n\nSigned-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/b9ddcae78265fb36a9849278a7e1d9fa157fb638"},{"sha":"0bf0d27df9c31e27a13b6eab92b83ade91872b44","author":{"name":"Vitaly Kuznetsov","email":"697ca8eff99222fe467efcff4e74ccad85cd3236@redhat.com"},"message":"x86/hyperv: move TSC reading method to asm/mshyperv.h\n\nAs a preparation to making Hyper-V TSC page suitable for vDSO move\nthe TSC page reading logic to asm/mshyperv.h. While on it, do the\nfollowing\n- Document the reading algorithm.\n- Simplify the code a bit.\n- Add explicit READ_ONCE() to not rely on 'volatile'.\n- Add explicit barriers to prevent re-ordering (we need to read sequence\n  strictly before and after)\n- Use mul_u64_u64_shr() instead of assembly, gcc generates a single 'mul'\n  instruction on x86_64 anyway.\n\nSigned-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/0bf0d27df9c31e27a13b6eab92b83ade91872b44"},{"sha":"458b06907d6a47af4c6c8bd14e7a9bf216f2b059","author":{"name":"Vitaly Kuznetsov","email":"697ca8eff99222fe467efcff4e74ccad85cd3236@redhat.com"},"message":"x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method\n\nHyper-V TSC page clocksource is suitable for vDSO, however, the protocol\ndefined by the hypervisor is different from VCLOCK_PVCLOCK. Implement the\nrequired support by adding hvclock_page VVAR.\n\nSigned-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/458b06907d6a47af4c6c8bd14e7a9bf216f2b059"},{"sha":"c506085f6816777dcbf49a5100443243cd3c273a","author":{"name":"stephen hemminger","email":"5bfd6f4d5597453bc08688e3129fd2e4fff3505f@networkplumber.org"},"message":"netvsc: fix hang on netvsc module removal\n\nThe code in netvsc_device_remove was incorrectly calling napi_disable\nrepeatedly on the same element. This would cause attempts\nto remove netvsc module to hang.\n\nFixes: 2506b1dc4bbe (\"netvsc: implement NAPI\")\nSigned-off-by: Stephen Hemminger <sthemmin@microsoft.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>\n(cherry picked from commit 79cd874c96b38694fb2b4ee3850f6fbbc3015439)","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/c506085f6816777dcbf49a5100443243cd3c273a"},{"sha":"2da1982bcfc5a65cad287731cefa95a35e8bc1b2","author":{"name":"Stephen Hemminger","email":"0c9a68348ab12076ffb3438db1613f01e51102e9@microsoft.com"},"message":"vmbus: simplify hv_ringbuffer_read\n\nWith new iterator functions (and the double mapping) the ring buffer\nread function can be greatly simplified.\n\nSigned-off-by: Stephen Hemminger <sthemmin@microsoft.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/2da1982bcfc5a65cad287731cefa95a35e8bc1b2"},{"sha":"eba74564f64586c916dd704a233da1e6ab7fae0b","author":{"name":"Stephen Hemminger","email":"0c9a68348ab12076ffb3438db1613f01e51102e9@microsoft.com"},"message":"storvsc: use in place iterator function\n\nUse foreach_vmbuspkt iterator.","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/eba74564f64586c916dd704a233da1e6ab7fae0b"},{"sha":"9b9f4299573e0c8eb65de906b186d1067b51bc86","author":{"name":"K. Y. Srinivasan","email":"a5cf196ea310dd27b5485244414a63baf7c6af2b@microsoft.com"},"message":"netvsc: Fix a bug in sub-channel handling\n\nAll netvsc channels are handled via NAPI. Setup the \"read mode\" correctly\nfor the netvsc sub-channels.\n\nSigned-off-by: K. Y. Srinivasan <kys@microsoft.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>\n(cherry picked from commit b1dd90cea725f794185a66c4e4ccfd4fb84632b5)","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/9b9f4299573e0c8eb65de906b186d1067b51bc86"},{"sha":"d18f9b6e520dd492923dd5b41e1ae45861b4795f","author":{"name":"Stephen Hemminger","email":"0c9a68348ab12076ffb3438db1613f01e51102e9@microsoft.com"},"message":"vmbus: fix unnecessary signal events as result of NAPI\n\nWith NAPI, the ring buffer is processed in incremental steps so\nthe read index needs to be updated after each section. But this can\nlead to lots of bogus vmbus signal events which hurts performance.\n\nThis patch rearranges the host incoming signalling logic to be\nmore complete and eliminate unnecessary ring buffer bookkeeping.\nThe new code also looks at mask flag from host to avoid signaling\neven more.\n\nSigned-off-by: Stephen Hemminger <sthemmin@microsoft.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/d18f9b6e520dd492923dd5b41e1ae45861b4795f"},{"sha":"9691c5eab28636516a566038b6e8c6809909c102","author":{"name":"Vitaly Kuznetsov","email":"697ca8eff99222fe467efcff4e74ccad85cd3236@redhat.com"},"message":"tools: hv: properly handle long paths\n\nPaths can be up to PATH_MAX long and PATH_MAX is usually greater than 256.\nWhile on it, simplify path reconstruction to a simple snprintf(), define\nand reuse KVP_NET_DIR.\n\nSuggested-by: Tomas Hozza <thozza@redhat.com>\nSigned-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/9691c5eab28636516a566038b6e8c6809909c102"},{"sha":"460f559545b149a9b7a9f6d3449dd11c8ad350f1","author":{"name":"Long Li","email":"5784321f8872e9678121e3211eea4cd04576ecf8@microsoft.com"},"message":"HV: properly delay KVP packets when negotiation is in progress\n\nThe host may send multiple negotiation packets (due to timeout) before the\nKVP user-mode daemon is connected. We need to defer processing those packets\nuntil the daemon is negotiated and connected. It's okay for guest to respond\nto all negotiation packets.\n\nIn addition, the host may send multiple staged KVP requests as soon as\nnegotiation is done. We need to properly process those packets using one\ntasklet for exclusive access to ring buffer.\n\nThis patch is based on the work of Nick Meier <Nick.Meier@microsoft.com>.\n\nThe patch v3 has incorporated suggestions from\nVitaly Kuznetsov <vkuznets@redhat.com>.\n\nSigned-off-by: Long Li <longli@microsoft.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/460f559545b149a9b7a9f6d3449dd11c8ad350f1"},{"sha":"99e77f03ce6d963cdec7a2842113e5436c7a1865","author":{"name":"K. Y. Srinivasan","email":"a5cf196ea310dd27b5485244414a63baf7c6af2b@microsoft.com"},"message":"netvsc: Initialize all channel related state prior to opening the channel\n\nPrior to opening the channel we should have all the state setup to handle\ninterrupts. The current code does not do that; fix the bug. This bug\ncan result in faults in the interrupt path.\n\nSigned-off-by: K. Y. Srinivasan <kys@microsoft.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/99e77f03ce6d963cdec7a2842113e5436c7a1865"},{"sha":"afc8a8a0dfcbbe082e8b8404dcb59557d9837e12","author":{"name":"Haiyang Zhang","email":"56725c1fc9442de37820b25dfd804126ad88e215@microsoft.com"},"message":"hv_netvsc: Exclude UDP port numbers from vRSS hashing\n\nAzure hosts are not supporting it for now.\n\nSigned-off-by: Haiyang Zhang <haiyangz@microsoft.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/afc8a8a0dfcbbe082e8b8404dcb59557d9837e12"},{"sha":"73322d9bf756bd62add4d4a4ff5b6d752dbe194f","author":{"name":"Stephen Hemminger","email":"0c9a68348ab12076ffb3438db1613f01e51102e9@microsoft.com"},"message":"netvsc: use napi_consume_skb\n\nThis allows using deferred skb freeing and with NAPI. And get buffer\nrecycling.\n\nCherry-pick from net-next.\n\nSigned-off-by: Stephen Hemminger <sthemmin@microsoft.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/73322d9bf756bd62add4d4a4ff5b6d752dbe194f"},{"sha":"a88cb607a190a060a7a0825938c254fe0920f2a1","author":{"name":"Stephen Hemminger","email":"0c9a68348ab12076ffb3438db1613f01e51102e9@microsoft.com"},"message":"netvsc: fix use after free on module removal\n\nThe NAPI data structure is embedded in the netvsc_device structure\nand is freed when device is brought down but was not being deleted\nfrom the network device NAPI list.  Fix by managing NAPI instances\ncorrectly.\n\nSigned-off-by: Stephen Hemminger <sthemmin@microsoft.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/a88cb607a190a060a7a0825938c254fe0920f2a1"},{"sha":"251d2ef10dec8ce61fc6d410b0c126d7510f29c9","author":{"name":"Stephen Hemminger","email":"0c9a68348ab12076ffb3438db1613f01e51102e9@microsoft.com"},"message":"netvsc: prefetch the first incoming ring element\n\nIn interrupt handler, prefetch the first incoming ring element\nso that it is in cache by the time NAPI poll gets to it.\n\nSigned-off-by: Stephen Hemminger <sthemmin@microsoft.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/251d2ef10dec8ce61fc6d410b0c126d7510f29c9"},{"sha":"5f37469814cd00913120a2da7f6c3feb04f08cd9","author":{"name":"Stephen Hemminger","email":"0c9a68348ab12076ffb3438db1613f01e51102e9@microsoft.com"},"message":"netvsc: convert ring_size to unsigned\n\nThe ring size module parameter is unsigned not integer.\n\nSigned-off-by: Stephen Hemminger <sthemmin@microsoft.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/5f37469814cd00913120a2da7f6c3feb04f08cd9"},{"sha":"b0ac8edc15d0e63e8c77df8e398cab0145eee3fb","author":{"name":"Stephen Hemminger","email":"0c9a68348ab12076ffb3438db1613f01e51102e9@microsoft.com"},"message":"netvsc: allow overriding send/recv buffer size\n\nThe default value of send and receive buffer area for host DMA\nis much larger than it needs to be. Experimentation shows that\n4M receive and 1M send is sufficient.\n\nMake the size a module parameter so that it can be adjusted\nas needed for testing or special needs.\n\nSigned-off-by: Stephen Hemminger <sthemmin@microsoft.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/b0ac8edc15d0e63e8c77df8e398cab0145eee3fb"},{"sha":"a7c6997f459730ba1f7b5012a74b46bb1e9b394a","author":{"name":"Vitaly Kuznetsov","email":"697ca8eff99222fe467efcff4e74ccad85cd3236@redhat.com"},"message":"hv_utils: drop .getcrosststamp() support from PTP driver\n\nTurns out that our implementation of .getcrosststamp() never actually\nworked. Hyper-V is sending time samples every 5 seconds and this is\ntoo much for get_device_system_crosststamp() as it's interpolation\nalgorithm (which nobody is currently using in kernel, btw) accounts\nfor a 'slow' device but we're not slow in Hyper-V, our time reference\nis too far away.\n\n.getcrosststamp() is not currently used, get_device_system_crosststamp()\nalmost always returns -EINVAL and client falls back to using PTP_SYS_OFFSET\nso this patch doesn't change much. I also tried doing interpolation\nmanually (e.g. the same way hv_ptp_gettime() works and it turns out that\nwe're getting even lower quality:\n\nPTP_SYS_OFFSET_PRECISE with manual interpolation:\n* PHC0                     0   3    37     4  -3974ns[-5338ns] +/-  977ns\n* PHC0                     0   3    77     7  +2227ns[+3184ns] +/-  576ns\n* PHC0                     0   3   177    10  +3060ns[+5220ns] +/-  548ns\n* PHC0                     0   3   377    12  +3937ns[+4371ns] +/- 1414ns\n* PHC0                     0   3   377     6   +764ns[+1240ns] +/- 1047ns\n* PHC0                     0   3   377     7  -1210ns[-3731ns] +/-  479ns\n* PHC0                     0   3   377     9   +153ns[-1019ns] +/-  406ns\n* PHC0                     0   3   377    12   -872ns[-1793ns] +/-  443ns\n* PHC0                     0   3   377     5   +701ns[+3599ns] +/-  426ns\n* PHC0                     0   3   377     5   -923ns[ -375ns] +/- 1062ns\n\nPTP_SYS_OFFSET:\n* PHC0                     0   3     7     5    +72ns[+8020ns] +/-  251ns\n* PHC0                     0   3    17     5   -885ns[-3661ns] +/-  254ns\n* PHC0                     0   3    37     6   -454ns[-5732ns] +/-  258ns\n* PHC0                     0   3    77    10  +1183ns[+3754ns] +/-  164ns\n* PHC0                     0   3   377     5   +579ns[+1137ns] +/-  110ns\n* PHC0                     0   3   377     7   +501ns[+1064ns] +/-   96ns\n* PHC0                     0   3   377     9  +1641ns[+3342ns] +/-  106ns\n* PHC0                     0   3   377     8    -47ns[  +77ns] +/-  160ns\n* PHC0                     0   3   377     5    +54ns[ +107ns] +/-  102ns\n* PHC0                     0   3   377     8   -354ns[ -617ns] +/-   89ns\n\nThis fact wasn't noticed during the initial testing of the PTP device\nsomehow but got revealed now. Let's just drop .getcrosststamp()\nimplementation for now as it doesn't seem to be suitable for us.\n\nSigned-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/a7c6997f459730ba1f7b5012a74b46bb1e9b394a"},{"sha":"0c1cba9b9542d3ea59543f9e5c7b2b92ea30e947","author":{"name":"Stephen Hemminger","email":"0c9a68348ab12076ffb3438db1613f01e51102e9@microsoft.com"},"message":"vmbus: add prefetch to ring buffer iterator\n\nWhen iterating over incoming ring elements from the host, prefetch\nthe next descriptor so that it is cache hot.\n\nSigned-off-by: Stephen Hemminger <sthemmin@microsoft.com>","distinct":true,"url":"https://api.github.com/repos/dcui/linux/commits/0c1cba9b9542d3ea59543f9e5c7b2b92ea30e947"}]}
{"actor":{"display_login":"dcui"}}