Hi all,
I was looking at git.linaro.org and I'd like to propose some consistency
in naming our git trees and in how we branch them. The main reason
for this from my perspective is to make it easy to point someone
from a partner team or from a partner''s customer to the git server and
have them quickly figure out what they need to pull. Right now we have:
Generic Linaro Kernels:
kernel/linux-linaro-${version}
Freescale:
bsp/freescale/linux-2.6-imx.git
bsp/freescale/linux-linaro-natty.git
bsp/freescale/linux-meta-linaro-natty.git
bsp/freescale/mx5-gpu.git
bsp/freescale/mx5-vpu.git
bsp/freescale/u-boot-linaro-natty.git
Samsung:
bsp/samsung/linux-linaro-2.6.39.git
bsp/samsung/u-boot-insignal-dev.git
bsp/samsung/u-boot.git
ST-E:
bsp/st-ericsson/firmware-ux500.git
bsp/st-ericsson/linux-2.6.34-ux500.git
bsp/st-ericsson/linux-2.6.35-ux500.git
bsp/st-ericsson/linux-2.6.38-snowball.git
bsp/st-ericsson/linux-2.6.38-ux500.git
bsp/st-ericsson/u-boot-ux500.git
TI:
people/andygreen/kernel-tilt.git
Each of the trees have various tags and branches based on how each
team and developer
works and I don't want to ask folks to change what they are doing for
their day to work.
What I'd like to see is a a separate set of official trees that only
get updated with bits that
we are ready for non-Linaro developers to use, do not get rebased, and
get tagged at the
end of each monthly cycle. My proposal:
kernel/linux-linaro-$version with tags for each monthly release:
v$version-$milestone-$buildcount
kernel/linux-linaro-android-$version with tags for each monthly
release: android-v$version-$milestone-$buildcount
kernel/$soc/linux-linaro-$version with tags for each monthly release:
$bsp-v$version-$milestone-$buildcount
kernel/$soc/linux-linaro-android-$version with tags for each monthly
release: $bsp-android-v$version-$milestone-$buildcount
Comments?
~Deepak
I have some exciting news.
We have our first working Android Snowball build! By taking AOSP 2.3.3
and adding a new board config based on Panda support the STE landing
team with help from the Android platform team and our valued partners
at STE were able to pull together a non-accelerated LEB for Snowball.
This build will allow us a great base to enable acceleration, bring up
John Stultz's common kernel and enable Android development on this
fantastic platform.
Many thanks to Mathieu, Frans, Patrik, Lee, Anmar, Scott and others
who made this happen.
-Zach
Note:
We're still working through some display and USB issues. Once those
have been worked out we'll make an official release.
Enclosed you'll find a link to the agenda, notes and actions from the
Linaro Developer Platforms Weekly Status meeting held on July 07th
in #linaro-meeting on irc.freenode.net at 14:00 UTC.
http://wiki.linaro.org/Platform/DevPlatform/Meetings/2011-07-07
New Actions:
* hrw to document how to update the cross packages for oneiric and
also how to make that available at backports
* hrw to document how he generated the first star rating test matrix,
describing what tests were done
* rsalveti to ping the whole team about vacation plans
* rsalveti to set up a fastboot sync up meeting with jcrigby asac and pfefferz
* rsalveti to ping asac about getting
http://www.amazon.com/Adesso-Black-Keyboard-Glidepoint-Touchpad/dp/B00008XO…
for some of the team
--
Regards,
Tom
"We want great men who, when fortune frowns will not be discouraged."
- Colonel Henry Knox
Linaro.org │ Open source software for ARM SoCs
w) tom.gall att linaro.org
w) tom_gall att vnet.ibm.com
h) tom_gall att mac.com
Documentation about the background and the design of mmc non-blocking.
Host driver guidelines to minimize request preparation overhead.
Signed-off-by: Per Forlin <per.forlin(a)linaro.org>
Acked-by: Randy Dunlap <rdunlap(a)xenotime.net>
---
ChangeLog:
v2: - Minor updates after proofreading comments from Chris
v3: - Minor updates after more comments from Chris
v4: - Minor updates after comments from Randy
v5: - Fixed one more comment and Acked-by from Randy
v6: - Write out full function names and use () for all functions,
feedback from James.
Documentation/mmc/00-INDEX | 2 +
Documentation/mmc/mmc-async-req.txt | 88 +++++++++++++++++++++++++++++++++++
2 files changed, 90 insertions(+), 0 deletions(-)
create mode 100644 Documentation/mmc/mmc-async-req.txt
diff --git a/Documentation/mmc/00-INDEX b/Documentation/mmc/00-INDEX
index 93dd7a7..a9ba672 100644
--- a/Documentation/mmc/00-INDEX
+++ b/Documentation/mmc/00-INDEX
@@ -4,3 +4,5 @@ mmc-dev-attrs.txt
- info on SD and MMC device attributes
mmc-dev-parts.txt
- info on SD and MMC device partitions
+mmc-async-req.txt
+ - info on mmc asynchronous requests
diff --git a/Documentation/mmc/mmc-async-req.txt b/Documentation/mmc/mmc-async-req.txt
new file mode 100644
index 0000000..aac5634
--- /dev/null
+++ b/Documentation/mmc/mmc-async-req.txt
@@ -0,0 +1,88 @@
+Rationale
+=========
+
+How significant is the cache maintenance overhead?
+It depends. Fast eMMC and multiple cache levels with speculative cache
+pre-fetch makes the cache overhead relatively significant. If the DMA
+preparations for the next request are done in parallel with the current
+transfer, the DMA preparation overhead would not affect the MMC performance.
+The intention of non-blocking (asynchronous) MMC requests is to minimize the
+time between when an MMC request ends and another MMC request begins.
+Using mmc_wait_for_req(), the MMC controller is idle while dma_map_sg and
+dma_unmap_sg are processing. Using non-blocking MMC requests makes it
+possible to prepare the caches for next job in parallel with an active
+MMC request.
+
+MMC block driver
+================
+
+The mmc_blk_issue_rw_rq() in the MMC block driver is made non-blocking.
+The increase in throughput is proportional to the time it takes to
+prepare (major part of preparations are dma_map_sg() and dma_unmap_sg())
+a request and how fast the memory is. The faster the MMC/SD is
+the more significant the prepare request time becomes. Roughly the expected
+performance gain is 5% for large writes and 10% on large reads on a L2 cache
+platform. In power save mode, when clocks run on a lower frequency, the DMA
+preparation may cost even more. As long as these slower preparations are run
+in parallel with the transfer performance won't be affected.
+
+Details on measurements from IOZone and mmc_test
+================================================
+
+https://wiki.linaro.org/WorkingGroups/Kernel/Specs/StoragePerfMMC-async-req
+
+MMC core API extension
+======================
+
+There is one new public function mmc_start_req().
+It starts a new MMC command request for a host. The function isn't
+truly non-blocking. If there is on ongoing async request it waits
+for completion of that request and starts the new one and returns. It
+doesn't wait for the new request to complete. If there is no ongoing
+request it starts the new request and returns immediately.
+
+MMC host extensions
+===================
+
+There are two optional members in the
+mmc_host_ops -- pre_req() and post_req() -- that the host
+driver may implement in order to move work to before and after the actual
+mmc_host_ops.request() function is called. In the DMA case pre_req() may do
+dma_map_sg() and prepare the DMA descriptor, and post_req() runs
+the dma_unmap_sg().
+
+Optimize for the first request
+==============================
+
+The first request in a series of requests can't be prepared in parallel with
+the previous transfer, since there is no previous request.
+The argument is_first_req in pre_req() indicates that there is no previous
+request. The host driver may optimize for this scenario to minimize
+the performance loss. A way to optimize for this is to split the current
+request in two chunks, prepare the first chunk and start the request,
+and finally prepare the second chunk and start the transfer.
+
+Pseudocode to handle is_first_req scenario with minimal prepare overhead:
+
+if (is_first_req && req->size > threshold)
+ /* start MMC transfer for the complete transfer size */
+ mmc_start_command(MMC_CMD_TRANSFER_FULL_SIZE);
+
+ /*
+ * Begin to prepare DMA while cmd is being processed by MMC.
+ * The first chunk of the request should take the same time
+ * to prepare as the "MMC process command time".
+ * If prepare time exceeds MMC cmd time
+ * the transfer is delayed, guesstimate max 4k as first chunk size.
+ */
+ prepare_1st_chunk_for_dma(req);
+ /* flush pending desc to the DMAC (dmaengine.h) */
+ dma_issue_pending(req->dma_desc);
+
+ prepare_2nd_chunk_for_dma(req);
+ /*
+ * The second issue_pending should be called before MMC runs out
+ * of the first chunk. If the MMC runs out of the first data chunk
+ * before this call, the transfer is delayed.
+ */
+ dma_issue_pending(req->dma_desc);
--
1.7.4.1
=== Highlights ===
* Multimedia test extensions (esp. ffmpeg builder)
* Built toolchains
* Got i.MX53 related files into the tree
=== Plans ===
* Check if i.MX53 build works; fix if it doesn't
* Sort out test content hosting for multimedia test
=== Issues ===
* Atrocious connectivity while doing on-site work for the day job
(partially fixed)
* i.MX53 build fails on android-build.linaro.org (but succeeds on the hack box)
Chao Yang <cyang>
Highlights
- Working environment setup
- Successfully build linaro toolchain-4.5-2011.06-0,
toolchain-4.6-2011.05-0, toolchain-4.6-2011.06-0.
- Successfully build Linaro Android with toolchain-4.5-2011.06-0 and
toolchain-4.6-2011.05-0
- gcc segmentation fault found when building Linaro Android with
toolchain-4.6-2011.06-0
-
Investigation is ongoing tracked by
https://bugs.launchpad.net/gcc-linaro/+bug/809768
Plans
- Working with toolchain team to fix gcc segmentation fault issue
- Benchmark 11.07 Toolchains
Issues
- Pandaboard HW not received yet.
--
Chao Yang
Android Platform Team
Linaro.org │ Open source software for ARM SoCs
Follow Linaro:
http://www.facebook.com/pages/Linaro/155974581091106http://twitter.com/#!/linaroorghttp://www.linaro.org/linaro-blog/
Botao Sun <botao_sun>
Highlights:
1. UK Business VISA application is under processing at Beijing UK embassy.
2. Made builds from source code for Panda, leb-Panda, Beagle, Linaro
Android Toolchain successfully on "Hack Box" machine.
3. Busybox source code has been compiled successfully by
"gcc-4.5-arm-linux-gnueabi" compiler, but failed with Linaro's toolchain
("android-toolchain-eabi-linaro-4.5-2011.06-0-2-2011-06-21_00-59-57-linux-x86.tar.bz2").
I'm discussing this issue with the technical leader of Linaro toolchain
team - Mr. Michael Hope.
4. Got a general image about Samsung Origen board from Mr. Angus
Ainslie, but haven't started the relevant work items.
Plans:
1. Try to figure out & solve the Busybox compiling issue with our own
toolchain.
2. I will get the Panda board & Samsung Origen board in next few days.
3. Discuss with Mr. Angus Ainslie for more details on Samsung Origen
board & build.
Issues:
1. Haven't find the root cause of Busybox compiling issue with our own
toolchain. I have got the reply from Mr. Michael Hope, but he didn't
provide a solution.
2. Risk for my UK business VISA application: Although my application has
been submitted to Beijing UK embassy VISA application office, the staff
told me that they will finish it around 2 weeks, without guarantee.
3. No Panda & Samsung Origen board (They are on the way).
BR
Botao Sun