coding style issue 4 Good enough for a trivial omission. [Compiler] use Art indentation standard First of several CLs to bring code closer to alignment with Art and LLVM standards. Move to 2-space indenting. Sticking with 80-col line length (which LLVM apparently also wants). LLVM also prefers camel case names, so keeping Dalvik convention there as well (for now). 4 If it is worthy to explain more. Do it. 7
may become invalid in future versions of the Java language and generates warnings in OpenJDK 8. 4 Explain why it should be removed. runtime: remove unneeded C header files 4 Oneliner is good again if you can explain why briefly in title. 10
rewrite this later. It's apparently dependent on scheduling order. The earlier fix in git rev 9d56c181 seems fine, though. 4 Explain why it should be disabled 11
bdi_prune_sb(), bdi_remove_from_list() and bdi_unregister() so that init / exit functions are grouped together. This w ill make updating init / exit paths for cgroup writeback support easier. 4 Explain why it should be reorganized. 13
This was supposed to be in CL 135490044 but got lost in a transfer from machine to machine. 4 Explain why the build error was not catched by youself. 16
Fix build errors that happen when USB_QCOM_8X16_PHY=y and EXTCON=m: drivers/built-in.o: In function `phy_8x16_init': phy-qcom-8x16-usb.c:(.text+0x86ef4): undefined reference to `extcon_get_cable_state' 4 Include error message help reader to understand the problem. 4 Describe the conditions causing the build error. 17
The android.telecom.Call.Details class provides its own equals implementation. Recently added in M is to also check if the mExtras and mIntentExtras are different. Unfortunately, Bundles do not implement equals. As a result when Telecom calls are parceled and sent to the InCallServices, this means that the internalUpdate method will always assume that the Details of a call have changed, even if they have not. This was causing a LOT of extra calls to onUpdate in the InCall UI (2x the amount). Although there is still room for improvement in the number of callbacks from Telecom, this fix prevents a pretty significant regression on that front. 4 Explain why this bug happened in M. 18
prewarm service When the unbind request came in before the service was actually bound, we dropped the unbind request because mPrewarmBound was still false. Fix that by tracking whether a bind is pending and if a unbind event comes in during that time, set another flag to unbind it directly again when the service is actually bound. In addition, don't allow binding again if any of the previous events are still pending. 4 Explain why the race condition happened, which is hard to see in diff. 19
latency to 6 This is a tradeoff between enabling better throughput for bursty traffic and low latency. The number 6 was found to be a good tradeoff for the Miracast use case which is the major use case for low latency. 4 Good to explain the rationale behind the magic number. 21
hint It's difficult to make this much better w/o much more effort. This is a rare case and probably not worth it. 4 Explain why only small improvement was made. 22
want to solve a problem in a particular way forces you to reflect and think deeply about why you did that piece of work, and this puts you in a better mindset to create better solutions in the first place. 23
as possible since it is only read at the end of the GC cycle. We're about to read it during the GC cycle to improve the assist ratio revisions, so modify gcDrain* to regularly flush to gcController.scanWork in much the same way as we regularly flush to gcController.bgScanCredit. One consequence of this is that it's difficult to keep gcw.scanWork monotonic, so we give up on that and simply return the amount of scan work done by gcDrainN rather than calculating it in the caller. 4 Describe rationale. 4 Provide high-level description of new approach. 4 Describe side effect. 28
subtract1 This reduces the depth of the inlining at a particular call site. The inliner introduces many temporary variables, and the compiler can do a better job with fewer. Being verbose in the bodies of these helper functions seems like a reasonable tradeoff: the uses are still just as readable, and they run faster in some important cases. 4 Describe tradeoffs. 29
If it's not used (such as on other systems or if softfloat is disabled) the linker will discard it. The alternative is to teach cmd/go that every binary depends on math implicitly on arm. I started down that path but it's too scary. If we're going to get dependencies right we should get dependencies right. 4 Describe alternatives you have tried. 30
Introduced in https://go-review.googlesource.com/12865 (git rev c2db5f4). This fix doesn't add any new lock acquistions: it just moves the existing one taken by the unreadDataSize method and moves it out wider. It became flaky at rev c2db5f4, but now reliably passes again: $ go test -v -race -run=TestTransportAndServerSharedBodyRace -count=100 net/http 4 Good to list tests you have done to verify the fix. 31
ARM When emulating ARM FSQRT instruction, the sqrt function itself should not use any floating point arithmetics, otherwise it will clobber the user software FP registers. Fortunately, the sqrt function only uses floating point instructions to test for corner cases, so it's easy to make that function does all it job using pure integer arithmetic only. I've verified that after this change, runtime.stepflt and runtime.sqrt doesn't contain any call to _sfloat. (Perhaps we should add //go:nosfloat to make the compiler enforce this?) 4 Provide high-level description of new approach. 4 Explain how you verified the fix. 32
10.10 Yosemite beta 14A299l workaround), since it was fixed in the final Yosemite release. I verified that the C program http://swtch.com/~rsc/readdirbug.c passes on Yosemite. Adds a new test to the os package too, to verify that reading a regular file as a directory fails. 4 Good to list test case you used to verify the fix. 33
instruction to perform rounding Results (haswell): name old time/op new time/op delta Floor-48 2.71ns ± 0% 1.87ns ± 1% -31.17% (p=0.000 n=16+19) Ceil-48 3.09ns ± 3% 2.16ns ± 0% -30.16% (p=0.000 n=19+12) 4 Use numbers to back up your improvements. 34
difficulties or tradeoffs made. 4 What are alternative solutions considered. 4 What tests you have done to verify the change. 4 What benchmark you have done for performance optimization. 35
for very large arguments The existing implementation has poor numerical properties for large arguments, so use the McGillicutty algorithm to improve accuracy above 1e10. The algorithm is described at http://wikipedia.org/wiki/McGillicutty_Algorithm 4 Good to reference online resources and relevant spec. 37
Section 4.3.14.1 of the ZIP file format spec (https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT) says, The value stored into the "size of zip64 end of central directory record" should be the size of the remaining record and should not include the leading 12 bytes. We were previously writing the full size, including the 12 bytes. 4 Provide reference to ZIP file format. 38
to be longer than your commit. 4 It’s perfectly OK to spend more time crafting your commit message than writing the code for your commit. 4 Solve Only One Problem per patch. 44