{"push_id":717603952,"size":12,"distinct_size":12,"ref":"refs/heads/jb","head":"26cd2e9b1852c348e011887654a82d60a9a68391","before":"86bb894f70b81211777c827d95cca54d265d38eb","commits":[{"sha":"41d242ee28f6d3073a84faadc5ae5b8def60c043","author":{"email":"c3deaf3f603462b1fb3d494d81d3b961caa16cbb","name":"Miao Xie"},"message":"lib/memcopy: use glibc version\n\nthe kernel's memcpy and memmove is very inefficient. But the glibc version is\nquite fast, in some cases it is 10 times faster than the kernel version. So I\nintroduce some memory copy macros and functions of the glibc to improve the\nkernel version's performance.\n\nThe strategy of the memory functions is:\n1. Copy bytes until the destination pointer is aligned.\n2. Copy words in unrolled loops.  If the source and destination are not\n   aligned in the same way, use word memory operations, but shift and merge\n   two read words before writing.\n3. Copy the few remaining bytes.\n\nSigned-off-by: Miao Xie <miaox*******>","distinct":true,"url":"https://api.github.com/repos/srfarias/srfarias-kernel/commits/41d242ee28f6d3073a84faadc5ae5b8def60c043"},{"sha":"bcab799921cdefc62db9345289555740b8c8f94a","author":{"email":"c3deaf3f603462b1fb3d494d81d3b961caa16cbb","name":"Miao Xie"},"message":"lib/string: use glibc version\n\nthe performance of memcpy and memmove of the general version is very\ninefficient, this patch improved them.\n\nSigned-off-by: Miao Xie <miaox*******>","distinct":true,"url":"https://api.github.com/repos/srfarias/srfarias-kernel/commits/bcab799921cdefc62db9345289555740b8c8f94a"},{"sha":"cc8ba8135df9dc81ee4ae879e52f88d2005a5906","author":{"email":"9b153e80bc985b32d577460a8a24e398d4182978@shutemov.name","name":"Kirill A. Shutemov"},"message":"hrtimer: Introduce effective timer slack\n\ntask_get_effective_timer_slack() returns timer slack value to be used\nto configure per-task timers. It can be equal or higher than task's\ntimer slack value.\n\nFor now task_get_effective_timer_slack() returns timer_slack_ns of the\ntask. Timer slack cgroup controller will implement a bit more\nsophisticated logic.\n\nSigned-off-by: Kirill A. Shutemov <kirill@shutemov.name>\nSigned-off-by: Cristoforo Cataldo <cristoforo.cataldo@gmail.com>","distinct":true,"url":"https://api.github.com/repos/srfarias/srfarias-kernel/commits/cc8ba8135df9dc81ee4ae879e52f88d2005a5906"},{"sha":"12c185ebe5874b2e712103999ddc72fc3b168bf3","author":{"email":"9b153e80bc985b32d577460a8a24e398d4182978@shutemov.name","name":"Kirill A. Shutemov"},"message":"hrtimer: Implement PR_GET_EFFECTIVE_TIMERSLACK\n\nPR_GET_EFFECTIVE_TIMERSLACK allows process to know its effective timer\nslack value.\n\nSigned-off-by: Kirill A. Shutemov <kirill@shutemov.name>\nSigned-off-by: Cristoforo Cataldo <cristoforo.cataldo@gmail.com>","distinct":true,"url":"https://api.github.com/repos/srfarias/srfarias-kernel/commits/12c185ebe5874b2e712103999ddc72fc3b168bf3"},{"sha":"ae6c81bae20820af29aaa747dd0b5e0818a074f0","author":{"email":"9b153e80bc985b32d577460a8a24e398d4182978@shutemov.name","name":"Kirill A. Shutemov"},"message":"cgroups: Introduce timer slack controller\n\nEvery task_struct has timer_slack_ns value. This value uses to round up\npoll() and select() timeout values. This feature can be useful in\nmobile environment where combined wakeups are desired.\n\nOriginally, prctl() was the only way to change timer slack value of\na process. So you was not able change timer slack value of another\nprocess.\n\ncgroup subsys \"timer_slack\" implements timer slack controller. It\nprovides a way to set minimal timer slack value for a group of tasks.\nIf a task belongs to a cgroup with minimal timer slack value higher than\ntask's value, cgroup's value will be applied.\n\nTimer slack controller allows to implement setting timer slack value of\na process based on a policy. For example, you can create foreground and\nbackground cgroups and move tasks between them based on system state.\n\nIdea-by: Jacob Pan <jacob.jun.pan@linux.intel.com>\nSigned-off-by: Kirill A. Shutemov <kirill@shutemov.name>\nSigned-off-by: Cristoforo Cataldo <cristoforo.cataldo@gmail.com>","distinct":true,"url":"https://api.github.com/repos/srfarias/srfarias-kernel/commits/ae6c81bae20820af29aaa747dd0b5e0818a074f0"},{"sha":"b01c742107ae1dbcdf3d01d94e2707aa1a22b6dd","author":{"email":"312c7d941f03386814be517ffdb3e0eb6624e275@google.com","name":"Eric Dumazet"},"message":"softirq: reduce latencies\n\nDate\tThu, 03 Jan 2013 23:49:40 -0800\n\nIn various network workloads, __do_softirq() latencies can be up\nto 20 ms if HZ=1000, and 200 ms if HZ=100.\n\nThis is because we iterate 10 times in the softirq dispatcher,\nand some actions can consume a lot of cycles.\n\nThis patch changes the fallback to ksoftirqd condition to :\n\n- A time limit of 2 ms.\n- need_resched() being set on current task\n\nWhen one of this condition is met, we wakeup ksoftirqd for further\nsoftirq processing if we still have pending softirqs.\n\nUsing need_resched() as the only condition can trigger RCU stalls,\nas we can keep BH disabled for too long.\n\nI ran several benchmarks and got no significant difference in\nthroughput, but a very significant reduction of latencies (one order\nof magnitude) :\n\nIn following bench, 200 antagonist \"netperf -t TCP_RR\" are started in\nbackground, using all available cpus.\n\nThen we start one \"netperf -t TCP_RR\", bound to the cpu handling the NIC\nIRQ (hard+soft)\n\nBefore patch :\n\nRT_LATENCY,MIN_LATENCY,MAX_LATENCY,P50_LATENCY,P90_LATENCY,P99_LATENCY,MEAN_LATENCY,STDDEV_LATENCY\nMIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET\nto 7.7.7.84 () port 0 AF_INET : first burst 0 : cpu bind\nRT_LATENCY=550110.424\nMIN_LATENCY=146858\nMAX_LATENCY=997109\nP50_LATENCY=305000\nP90_LATENCY=550000\nP99_LATENCY=710000\nMEAN_LATENCY=376989.12\nSTDDEV_LATENCY=184046.92\nAfter patch :\n\nRT_LATENCY,MIN_LATENCY,MAX_LATENCY,P50_LATENCY,P90_LATENCY,P99_LATENCY,MEAN_LATENCY,STDDEV_LATENCY\nMIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET\nto 7.7.7.84 () port 0 AF_INET : first burst 0 : cpu bind\nRT_LATENCY=40545.492\nMIN_LATENCY=9834\nMAX_LATENCY=78366\nP50_LATENCY=33583\nP90_LATENCY=59000\nP99_LATENCY=69000\nMEAN_LATENCY=38364.67\nSTDDEV_LATENCY=12865.26\n\nSigned-off-by: Eric Dumazet <edumazet@google.com>\nCc: David Miller <davem@davemloft.net>\nCc: Tom Herbert <therbert@google.com>\nCc: Ben Hutchings <bhutchings@solarflare.com>","distinct":true,"url":"https://api.github.com/repos/srfarias/srfarias-kernel/commits/b01c742107ae1dbcdf3d01d94e2707aa1a22b6dd"},{"sha":"fdbec411979a387a387f3403d1be0bc343c2f7f5","author":{"email":"bd5c00b7233f7e9d1df99d90a21c081aa6291657@codeaurora.org","name":"David Keitel"},"message":"sysctl: add cold_boot sysctl entry\n\nAdd a cold_boot parameter which supplements the boot\nreason sysctl entry with information about whether\nthe system was booted from cold or warm state\n\nCRs-Fixed: 461256\nChange-Id: I2bc5d80c8f26eb9e9dbb4b34960d991a51a224e4\nSigned-off-by: David Keitel <dkeitel@codeaurora.org>\nSigned-off-by: Rajkumar Raghupathy <raghup@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/srfarias/srfarias-kernel/commits/fdbec411979a387a387f3403d1be0bc343c2f7f5"},{"sha":"f4939ea273f03f05044a2a1f7c229ca0bfabf8b8","author":{"email":"5df8b7afbc8bc60e3df630fdc676a579bee7328f@gmail.com","name":"Cristoforo Cataldo"},"message":"kernel: cgroup_timer_slack: Adaptations for 3.4 kernel\n\nSigned-off-by: Cristoforo Cataldo <cristoforo.cataldo@gmail.com>","distinct":true,"url":"https://api.github.com/repos/srfarias/srfarias-kernel/commits/f4939ea273f03f05044a2a1f7c229ca0bfabf8b8"},{"sha":"86069da1afc1b2f5973bf0297c28b7c822f12b86","author":{"email":"5df8b7afbc8bc60e3df630fdc676a579bee7328f@gmail.com","name":"Cristoforo Cataldo"},"message":"kernel: cgroup_timer_slack: Dynamic management of timer slack\n\nThis feature allows to use different minimal timer slack values and to\ndynamically manage them when the system has been resumed (it's active)\nor when has been suspended.\n\nA new file is provided in addition to the two files provided by the\noriginal timer slack controller:\n- \"timer_slack.min_slack_suspend_ns\" is the minimal timer slack value\n  to use when the system is suspended (screen off)\n\nFor further info, please refers to the timer slack documentation:\nDocumentation/cgroupd/timer_slack.txt\n\nSigned-off-by: Cristoforo Cataldo <cristoforo.cataldo@gmail.com>","distinct":true,"url":"https://api.github.com/repos/srfarias/srfarias-kernel/commits/86069da1afc1b2f5973bf0297c28b7c822f12b86"},{"sha":"7796dd83a33aea5378563d2f4a8e251ce6ea136b","author":{"email":"118ed6118e893d16e8c6e0776e0ebc290952c897@openwrt.org","name":"Felix Fietkau"},"message":"timer: optimize apply_slack()\n\n__fls(mask) is equivalent to find_last_bit(&mask, BITS_PER_LONG), but cheaper.\nfind_last_bit was showing up high on the list when I was profiling for stalls\non icache misses on a system with very small cache size (MIPS).\n\nSigned-off-by: Felix Fietkau <nbd@openwrt.org>\nSigned-off-by: edoko <r_data@naver.com>\n\nChange-Id: I8a5021a2fb2936c00ffd456663a76cb1b23e3100","distinct":true,"url":"https://api.github.com/repos/srfarias/srfarias-kernel/commits/7796dd83a33aea5378563d2f4a8e251ce6ea136b"},{"sha":"8f077a7a3c51c6a42d61e79c72592a7e896f7174","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"Paul Reioux"},"message":"sched: Consider max cost of idle balance per sched domain\n\nDate    Thu, 29 Aug 2013 13:05:35 -0700\n\nIn this patch, we keep track of the max cost we spend doing idle load balancing\nfor each sched domain. If the avg time the CPU remains idle is less then the\ntime we have already spent on idle balancing + the max cost of idle balancing\nin the sched domain, then we don't continue to attempt the balance. We also\nkeep a per rq variable, max_idle_balance_cost, which keeps track of the max\ntime spent on newidle load balances throughout all its domains. Additionally,\nwe swap sched_migration_cost used in idle_balance for rq->max_idle_balance_cost.\n\nBy using the max, we avoid overrunning the average. This further reduces the chance\nwe attempt balancing when the CPU is not idle for longer than the cost to balance.\n\nI also limited the max cost of each domain to 5*sysctl_sched_migration_cost as\na way to prevent the max from becoming too inflated.\n\nSigned-off-by: Jason Low <jason.low2@hp.com>\n\nbackported for Linux 3.4\n\nSigned-off-by: Paul Reioux <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/srfarias/srfarias-kernel/commits/8f077a7a3c51c6a42d61e79c72592a7e896f7174"},{"sha":"26cd2e9b1852c348e011887654a82d60a9a68391","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"Paul Reioux"},"message":"sched: Periodically decay max cost of idle balance\n\nThis RFC patch builds on patch 2 and periodically decays that max value to\ndo idle balancing per sched domain.\n\nThough we want to decay it fairly consistently, we may not want to lower it by\ntoo much each time, especially since avg_idle is capped based on that value.\nSo I thought that decaying the value every second and lowering it by half a\npercent each time appeared to be fairly reasonable.\n\nThis change would allow us to remove the limit we set on each domain's max cost\nto idle balance. Also, since the max can be reduced now, we now have to\nupdate rq->max_idle balance_cost more frequently. So after every idle balance,\nwe loop through the sched domain to find the max sd's newidle load balance cost\nfor any one domain. Then we will set rq->max_idle_balance_cost to that value.\n\nSince we are now decaying the max cost to do idle balancing, that max cost can\nalso become not high enough. One possible explanation for why is that\nbesides the time spent on each newidle load balance, there are other costs\nassociated with attempting idle balancing. Idle balance also releases and\nreacquires a spin lock. That cost is not counted when we keep track of each\ndomain's cost to do newidle load balance. Also, acquiring the rq locks can\npotentially prevent other CPUs from running something useful. And after\nmigrating tasks, it might potentially have to pay the costs of cache misses and\nrefreshing tasks' cache.\n\nBecause of that, this patch also compares avg_idle with max cost to do idle\nbalancing + sched_migration_cost. While using the max cost helps reduce\noverestimating the average idle, the sched_migration_cost can help account\nfor those additional costs of idle balancing.\n\nSigned-off-by: Jason Low <jason.low2@hp.com>\n[peterz: rewrote the logic, but kept the spirit]\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nbackported to Linux 3.4\nSigned-off-by: Paul Reioux <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/srfarias/srfarias-kernel/commits/26cd2e9b1852c348e011887654a82d60a9a68391"}]}