diff options
author | Jeff Sharkey <jsharkey@android.com> | 2015-05-14 21:07:42 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2015-05-15 13:47:12 -0700 |
commit | 9756d75ec28844f5ca30fda786a117c1a0ee88da (patch) | |
tree | 4046423fa7c33d4c0dbe95d657dfcf13fa515c7b /core/java/android/os | |
parent | 0d838a0fad500a3c446df501d8aa7656c2c3a7a2 (diff) | |
download | frameworks_base-9756d75ec28844f5ca30fda786a117c1a0ee88da.zip frameworks_base-9756d75ec28844f5ca30fda786a117c1a0ee88da.tar.gz frameworks_base-9756d75ec28844f5ca30fda786a117c1a0ee88da.tar.bz2 |
Initial pass at storage benchmarks.
Offer an interface for Settings to invoke benchmarks on various
attached volumes.
Bug: 21172095
Change-Id: I847ddc87c58285457d1324be87f70ce10507accb
Diffstat (limited to 'core/java/android/os')
-rw-r--r-- | core/java/android/os/storage/IMountService.java | 27 | ||||
-rw-r--r-- | core/java/android/os/storage/StorageManager.java | 9 |
2 files changed, 36 insertions, 0 deletions
diff --git a/core/java/android/os/storage/IMountService.java b/core/java/android/os/storage/IMountService.java index 2b058a8..9c576d4 100644 --- a/core/java/android/os/storage/IMountService.java +++ b/core/java/android/os/storage/IMountService.java @@ -1005,6 +1005,22 @@ public interface IMountService extends IInterface { } @Override + public long benchmark(String volId) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(volId); + mRemote.transact(Stub.TRANSACTION_benchmark, _data, _reply, 0); + _reply.readException(); + return _reply.readLong(); + } finally { + _reply.recycle(); + _data.recycle(); + } + } + + @Override public void partitionPublic(String diskId) throws RemoteException { Parcel _data = Parcel.obtain(); Parcel _reply = Parcel.obtain(); @@ -1257,6 +1273,8 @@ public interface IMountService extends IInterface { static final int TRANSACTION_getPrimaryStorageUuid = IBinder.FIRST_CALL_TRANSACTION + 57; static final int TRANSACTION_setPrimaryStorageUuid = IBinder.FIRST_CALL_TRANSACTION + 58; + static final int TRANSACTION_benchmark = IBinder.FIRST_CALL_TRANSACTION + 59; + /** * Cast an IBinder object into an IMountService interface, generating a * proxy if needed. @@ -1726,6 +1744,14 @@ public interface IMountService extends IInterface { reply.writeNoException(); return true; } + case TRANSACTION_benchmark: { + data.enforceInterface(DESCRIPTOR); + String volId = data.readString(); + long res = benchmark(volId); + reply.writeNoException(); + reply.writeLong(res); + return true; + } case TRANSACTION_partitionPublic: { data.enforceInterface(DESCRIPTOR); String diskId = data.readString(); @@ -2088,6 +2114,7 @@ public interface IMountService extends IInterface { public void mount(String volId) throws RemoteException; public void unmount(String volId) throws RemoteException; public void format(String volId) throws RemoteException; + public long benchmark(String volId) throws RemoteException; public void partitionPublic(String diskId) throws RemoteException; public void partitionPrivate(String diskId) throws RemoteException; diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java index 8c0bbbf..3a6ff28 100644 --- a/core/java/android/os/storage/StorageManager.java +++ b/core/java/android/os/storage/StorageManager.java @@ -641,6 +641,15 @@ public class StorageManager { } /** {@hide} */ + public long benchmark(String volId) { + try { + return mMountService.benchmark(volId); + } catch (RemoteException e) { + throw e.rethrowAsRuntimeException(); + } + } + + /** {@hide} */ public void partitionPublic(String diskId) { try { mMountService.partitionPublic(diskId); |