== Progress ==
* Spent a couple of days studying existing patches and code changes made
for reverse debug support.
* Evaluated record n replay and reverse debug support by testing these
features in various configuration with few forced code changes.
* Evaluated catch syscall patch by running it on chrome book.
* Finally submitted UK visa application. Spent a couple of days preparing
documents getting them attested and took the trip to UK visa application
center for application submission.
* Independence Day Public Holiday on 14th August.
== Plan ==
* Continue work on Reverse debug on arm major task next week is to study
arm documentation and identify changes required for thumb32 support in
process record and replay feature.
* Review and update TCWG Libraries and Dev tools wiki pages.
== Progress ==
* Libssp support for AArch64 TCWG 23:
Understood the TCB datastructure. Sent a mail to the internal team on the
changes needed and where to put stack gaurd slot in TCB.
Got some comments from Matt. Worked on the changes in eglibc.
Tested a simple stack smashing program in V8 model by moving
the patched run time linker and glibc. Sent the RFC internally for review.
* 4 day week 15-August India naional holiday.
== Plan ==
* Post RFC patch for Libssp support for AArch64 in GCC and glibc TCWG-23
* Continue testing the patch for Libssp support for AArch64 in GCC and
glibc TCWG-23
* Backport and test revision 201406 to linaro branch.
== Issues ==
* LTO/PGO work stopped now since libssp support priority is more.
* Waiting for Marcus feedback for Matt comments on gprof patches TCWG-20.
Misc
------
23-August availing leave.
== Progress ==
* spec2k comparison between ARM and x86
- Trying to reproduce some of the earlier optimization studies
- Set up Acovea Trying milepost gcc
* VRP based zero/sign extension elimination
- Posted the modified patch
== Plan ==
* Continue with spec2k comparison between ARM and x86
* Wiki Cleanup
== Progress ==
* Made it back from the Tetons after a rainy climbing trip
* Helped Vish with #357
* Cbuildv2 improvements for cross builds and binary releases
* Wrote script to for better Jenkins support
* Added more user parameters to Jenkins config page for building
toolchains.
== Plans ==
* More work on Cbuildv2 for building binary releases
* Write more Cbuildv2 docs
* More help on #357
* Start going through Wiki pages
* Investigate lava-tool so Cbuildv2 can use Jenkins slaves remotely
== Progress ==
* Short week (3 days off to move house)
* Submitted outstanding glibc patches after 2.18 release
* Wrote some glibc allocator tests which have exposed some minor issues
== Issues ==
* None
== Plan ==
* Complete glibc allocator tests and submit them
* Get malloc implementation functionally complete
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* 2013.08 4.8 release:
- completed achievable backports (postponed some with problems to
next release)
- created & uploaded release. Will be announced next week along with 4.7
- Matthias a reported a problem in c++/java
* Aarch64 frame layout: submitted sample code for internal discussion.
* Wiki cleanup: started
* trunk validation:
- continued to work on internal validation of trunk using our
compute farm (build+cross validation) to help catch regressions early.
- validating every commit seems too heavy currently
== Plan ==
next week off
== Progress ==
* Connect / LLVM Meeting
- Checking times, booking tickets, etc
* Divmod
- Some more divmod work, SelectionDAG changed enough to break my merge
- Since it's only 64-bit support, we'll postpone implementation for a
later date
- Internal discussions with ARM, trying to approach it in a different way
* Buildbots
- Investigating MCJIT test failure in buildbot
- Some other random breakages
- Testing an ODroid U2 as a buildbot, will leave it running for a week
non-stop
- Checking why ClamAV has different output on Chromebook vs.
ODroid/Panda/x86
* ODroid U2
- Testing ODroid vs. Chromebook / SDCard vs. External HD
- ODroid with SDCard is faster than Chromebook with External HD!
- The huge heat-sink, the possibility of adding a fan and its form factor
make it a really good candidate for a buildbot
* Background
- Meetings with ARM, LLVMLinux
- Interviewing potential candidates
- Reviewing & committing patches, discussions, etc.
* Cross-compilation
- Preparing the terrain to start investigation
== Plan ==
Another week off! :D
Progress:
* v7 mach-virt upstreaming:
** sent out an RFC patchset implementing '-cpu host' for QEMU for v7 CPUs
* QEMU maintenance:
** versatile-pb PCI issues came up again; testing kernel patches etc
-- PMM
Is there a way to generate A32 code with the gcc-linaro-aarch64- compilers? I looked at the bare metal and linux 2013.07 versions, but didn't see a way to do this.
Also, the compiler doesn't complain about -mcpu=cortex-a53 or -mcpu=cortex-a57, but I get unknown cpu errors from the assembler for these options. It looks like it is the case today that there is just generic v8 code generation and more specialized code generation will come later. Is that right?
Thanks, Don
== Issues ==
* None
== Progress ==
* Investigate and close lp:1208945 and lp:1210713.
- For lp:1208945, libc.so.6 should be at /lib/arm-linux-gnueabihf.
- For lp:1210713, aufs is not a part of standard linux kernel release.
But aufs is supported by Ubuntu release. So maybe need it for future
releases.
* Conditional compare
- Enhance reassoc pass to handle conditional compare
- Investigating bootstrap issue when expanding conditional compare to
optimized RTL.
* Investigate LDTS tickets about multilib build issues.
- Local builds are OK for Linaro GCC 4.7 and 4.8.
== Plan ==
* Send out the conditional compare patches for review.
== Panned leaves ==
* Aug. 19-20: annual leaves
* Sept. 3-5: internal meeting.
Folks,
This week I acquired an ODroid U2, which is an Exynos4 (quad-core A9 at
1.7GHz each), 2GB RAM, and a massive heat-sink (which even has power supply
for a fan).
I ran some ball-park compilation time benchmarks, comparing to the
Chromebook, and the results are interesting. The ODroid with an SDCard
(32GB Sandisk Ultra HC-1) is faster than the Chromebook with an external
USB 3.0 / SATA hard-drive.
LLVM Build Times (min)ChromebookODroidODroid-USBBuild1008180Check-all545
Test-suite424038
The test-suite and check-all results are statistically equivalent, but the
build time is better because of the number of CPUs, but not twice better.
Disk is more of an issue on the test-suite, which can be clearly seen above
(-j2 for Chromebook, -j4 for ODroid, but same time).
My USB stick is not the best, so that doesn't mean much. Also, I can't get
the ODroid to even recognize the SATA disk when I plug in because of the
power it needs. So, we'll have to do with those numbers. I'm using the
ODroid Ubuntu image (based on 13.04), which worked out of the box (except
the SATA disk and HDMI).
I'll let the board run for a week at home (room temperature ~ 25C) as a
buildbot, with the fan on all the time and see if it copes with constant
load for such a long time. Pandas couldn't do that, Chromebooks can.
Since the ODroid U2 is a dev board, which has a small form-factor, can be
turned on/off remotely and won't sleep when the lid is closed, has a decent
Ethernet port (Chromebook's wired adapters are *horrible*, and having
dozens of Wireless clients in the lab is just not possible), and don't have
the risk of being turned off by someone else, like the Calxedas, I'd say
that it might end up as the best buildbot yet. (The new XU is an Exynos5
octo-core monster, might be even better).
After the initial week load test, if all goes well, I want to bootstrap GCC
and run some tests on it, so I'll be calling for volunteers to help me.
cheers,
--renato
== Progress ==
* 2013.08 4.8 release:
-- merged many backports
- sorted a few dependencies problems between patches
- spawned all intermediate jobs (ie merge commits) to make sure
there was no regression
* 2013.08 4.7 release:
- made a trial branch merge to confirm that all builds succeed
(Matthias reported a build failure for aarch64)
* trunk validation:
- continued to work on internal validation of trunk using our
compute farm (build+cross validation) to help catch regressions early.
== Plan ==
* 2013.08 4.8 release:
- final backports
- actual release
* Resume work on aarch64 frame layout.
* Resume work on disabling peeling.
Last week
* tried cbuildv2 and sent Rob some bug fixes, bug reports, and feature requests
* ported previous testsuite fixes to trunk
This week
* send patch to gcc-patches
* find the next thing to fix
Issues
* need to take desktop PC back to supplier to fix CPU overheating
== Progress ==
* Finished gdb catch syscall support work and performed testing on ARM
and x86. Trying to eliminate a couple of testsuite failures on arm.
* Short week due to Eid Holidays.
== Plan ==
* Evaluate arm catch syscall support patch recently submitted by some
other developer.
* Work on reverse debug support on arm.
* Independence Day Public Holiday on 14th August.
* Getting documents ready and attend UK Visa appointment on 15th August.
== Progress ==
* Libssp support for AArch64 TCWG 23:
Patch was tested for aarch64-none-elf and passed. Sent for internal review.
Looking at supporting stack guard in glibc. Understanding TCB data structure
and looking at ports on how they initialize the stack guard in th TCB.
* TCWG-20 gprof support patches.
Reply to Marcus comments and rework and code mcount routine in assembly.
Ref: http://gcc.gnu.org/ml/gcc-patches/2013-08/msg00148.html
== Plan ==
* Continue Libssp support for AArch64 in GCC and glibc TCWG-23
* Update review comments and upstream gprof patches
== Issues ==
* LTO/PGO work stopped now since libssp support priority is more
Misc
------
15-August Public holiday in India.
== Issues ==
* No idea to fix eglibc backtrace issue.
== Progress ==
* Commit (FSF 4.8 and trunk) the fix for lp: 1189445/1208676.
* Enhance Linaro crosstool-ng:
- Fix gcc respin version issue in README.
- Update big-endian multiarch triplet name.
* Investigate eglibc backtrace issue:
- Test case: linaro-crosstool-ng/contrib/linaro/tests/misc/sort.c.
- gdb report: Backtrace stopped: previous frame identical to this
frame (corrupt stack?)
- Try to rebuild eglibc with gcc 4.7 and -gdwarf-2. But still not work.
* Conditional compare
- Send for Linaro internal review.
- Workaround a new fail case.
- Test the prototype on x86-64 port.
== Plan ==
* Conditional compare RFC review.
== Panned leaves ==
* Aug. 19-20: annual leaves
* Sept. 3-5: ARM internal meeting.
== Progress ==
* spec2k comparison between ARM and x86
- Read papers/documents that list gcc optimization/problem for arm
- Acovea runs fails in Chromebook; Looking into it
- continuing with analysing individual results
* VRP based zero/sign extension elimination
- Final checks ongoing before posting the patch
== Plan ==
* Continue with spec2k comparison between ARM and x86
* post VRP based zero/sign extension elimination patch
== Misc ==
* Was on Leave Thursday/Friday (3 Day week)
* Watched Cauldron 2013 archives
== Progress ==
* Lots more malloc work, slowly progressing
* Created a patch queue in preparation for glibc coming out of freeze
* New strlen code
* Other bugfixes and minor improvements
== Issues ==
* None
== Plan ==
* Move house (Wednesday and Thursday off)
* Submit glibc patches
* Get malloc implementation functionally complete
--
Will Newton
Toolchain Working Group, Linaro
Progress:
* v7 mach-virt upstreaming:
** sent out mach-virt patchset for v7
** thinking/discussions about how to handle the host maybe not being
able to provide a guest CPU; this has converged on a sensible design
based around using "-cpu host" to mean "please give me a VCPU that's
the same as the host's CPU"
** review of the OVS v2 aarch64-kvm-support patchset
* QEMU maintenance:
** rebased qemu-linaro on upstream master
** fixed some minor bugs revealed by clang warnings
** wrote and sent out a cleanup patchset which removes the now
unnecessary 'arm_pic' shim around the CPU
** implemented debug logging of exceptions/interrupts for ARM TCG
(helpful for identifying when a guest has gone into an infinite
loop of taking exceptions)
-- PMM
== Progress ==
* Cbuildv2 can now do a full cross toolchain build ala crosstool-ng.
* Cbuildv2 integrated to work under LAVA team's Jenkins for
automated cross builds.
* Cbuildv2 now allows one to select the version of each toolchain
component.
== Plans ==
* Add support to Cbuildv2 to run 'make check' and create XML files
for MySQL and Junit (which Jenkins uses).
* Add newlib building support to Cbuildv2 as part of "--build all".
== Leave ==
* Off to climb Grand Teton in Wyoming, taking long weekend.
- rob -
When the OMAP I2C controller is operated in master mode, setting the
STP bit in the CON register instructs the controller to generate an I2C
stop condition only after the programmed number of bytes has been sent
on the I2C bus. The current code in QEMU ends the I2C transfer without
first sending the pending data instead.
Fix the above issue, and let the I2C transfer be ended in
omap_i2c_fifo_run(), after the count of bytes to send has reached zero.
Signed-off-by: Francesco Lavra <francescolavra.fl(a)gmail.com>
---
Without this patch, the controller driver in Linux is unable to send
data on the I2C bus, and when the controller triggers an IRQ after
having started an I2C transfer, the XRDY flag in the STAT register
remains always asserted, leading to an endless loop which eventually
results in a kernel oops.
hw/i2c/omap_i2c.c | 4 ----
1 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/hw/i2c/omap_i2c.c b/hw/i2c/omap_i2c.c
index cfaac07..17d4037 100644
--- a/hw/i2c/omap_i2c.c
+++ b/hw/i2c/omap_i2c.c
@@ -521,10 +521,6 @@ static void omap_i2c_write(void *opaque, hwaddr addr,
omap_i2c_fifo_run(s);
}
omap_i2c_interrupts_update(s);
- } else if (value & 2) { /* STP, but not STT */
- i2c_end_transfer(s->bus);
- s->control &= ~0x0602; /* MST | TRX | STP */
- s->count_cur = s->count;
}
}
break;
--
1.7.5.4
Last week
* Wrote up notes on gcc cross-compiler building (WIP:
https://wiki.linaro.org/WorkingGroups/ToolChain/BuildingGNUToolchains)
* started looking at gcc test suite
This week
* produce at least one fix for a gcc testsuite test problem
* book LCU13
* with luck, receive new laptop
== Progress ==
* 2013-08 4.8 release:
- Reviewed merge requests sent by Yvan.
A few instabilities in x86/x86_64: re-spawned jobs came back clean.
Unexpected improvements in a9: actually the reference had
unexpected regression; re-spawned reference job came back clean.
- prepared another series of backports; had to dig history to find
missing dependencies.
== Plan ==
* 2013.08 4.8 release:
- merge approved backports
- merge fsf-4.8 branch
* 2013.08 4.7 release:
- merge fsf-4.7 branch
* Resume work on aarch64 frame layout.
* Resume work on disabling peeling.
== Progress ==
* Generated arm syscall xml file for gdb and made few code changes in
arm-linux-tdep for catch syscall support on arm TCWG-182.
* Ran reverse debugging test suites on arm with arm/thumb and mix mode.
== Plan ==
* Short week due to EID holidays
* Try to Complete code changes and perform testing on arm/x86 for gdb
catch syscall support for arm TCWG-182.
== Progress ==
* Libssp support for AArch64 TCWG 23:
Basic support is enabled by default when frame is made to grow downwards.
Wrote machine descriptions for stack_protect_set and
stack_protect_test to override this default behavior.
Testing the patch internally.
Plan is to emit instructions as RTL instead of template and see
which approach is better.
* Look at builtin return address behavior in the absence of frame pointer:
For X86_64 usage if __builtin_return_address(n) n>0 and
-fomit-frame-pointer results in undefined behavior.
Discussed with Marcus and Andrew (mail chain) and decided not to
touch __builtin_return_address(n) where n>0.
Decided to leave it as return 0 for frame number other than current frame.
* TCWG-20 gprof support patches.
Re-implemented gprof patches without builtin_return_address usage
for frame number n >0.
The "mcount" in glibc needs two arguments. The "mcount" routine
will be emitted by GCC with an argument to previous frame return
address.
And in the glibc "mcount" routine will be modified to use
builtin_return_address(0) for the second argument.
http://gcc.gnu.org/ml/gcc-patches/2013-08/msg00148.html
Waiting for comments.
Matt suggested to try and return a label address inside the function
while generating mcount. But profiling code is expanded before any
local labels are generated.
Also need to research more on this approach. So stopped and decided
to use simpler approach.
== Plan ==
* Continue Libssp support for AArch64 TCWG-23
* Update review comments and upstream gprof patches
==issues==
* LTO/PGO work stopped now since libssp support priority is more
Misc
------
09-August Public holiday in India.