ANDROID: goldfish_pipe: An implementation of more parallel pipe
authorYurii Zubrytskyi <zyy@google.com>
Fri, 29 Jul 2016 17:51:46 +0000 (10:51 -0700)
committerJin Qian <jinqian@google.com>
Thu, 17 Nov 2016 20:28:42 +0000 (12:28 -0800)
commitbc43565e1ac5ba3f204886a2275726bb4c3d44e6
treedf744c9a5e71ab937a3a2f07ff3b06b54bcf083f
parente96f35d6073717452d9bc484dad0c3cfb61f5c46
ANDROID: goldfish_pipe: An implementation of more parallel pipe

This is a driver code for a redesigned android pipe.
Currently it works for x86 and x64 emulators with the following
performance results:
  ADB push to /dev/null,
  Ubuntu,
  400 MB file,
  times are for 1/10/100 parallel adb commands
x86 adb push: (4.4s / 11.5s / 2m10s) -> (2.8s / 6s / 51s)
x64 adb push: (7s / 15s / (too long, 6m+) -> (2.7s / 6.2s / 52s)

ADB pull and push to /data/ have the same %% of speedup
More importantly, I don't see any signs of slowdowns when
run in parallel with Antutu benchmark, so it is definitely
making much better job at multithreading.

The code features dynamic host detection: old emulator gets
the previous version of the pipe driver code.

Combine follow patch from android-goldfish-3.10

b543285 [pipe] Increase the default pipe buffers size, make it configurable

Signed-off-by: "Yurii Zubrytskyi" <zyy@google.com>
Change-Id: I140d506204cab6e78dd503e5a43abc8886e4ffff
drivers/platform/goldfish/Makefile
drivers/platform/goldfish/goldfish_pipe.c
drivers/platform/goldfish/goldfish_pipe.h [new file with mode: 0644]
drivers/platform/goldfish/goldfish_pipe_v2.c [new file with mode: 0644]