From 2fd72cc22171cc23e67206db795fc5025d4f7ac6 Mon Sep 17 00:00:00 2001 From: Ken Sumrall Date: Fri, 8 Feb 2013 16:50:55 -0800 Subject: [PATCH] Raise the max file open limit in sdcard The default is 1024 files, and in some testing, the limit has been hit. This raises the limit to 8192. Going higher starts to cause performance issues (I started to notice that around 16K open files in my testing) as sdcard does linear searches. If a higher max is needed, then the sdcard daemon will need some optimizations. Bug: 7442187 Change-Id: I7aba7f4556ed70651f36244294a6756f3d6b8963 --- sdcard/sdcard.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sdcard/sdcard.c b/sdcard/sdcard.c index 8d87ee92d..bff6e67d5 100644 --- a/sdcard/sdcard.c +++ b/sdcard/sdcard.c @@ -28,6 +28,8 @@ #include #include #include +#include +#include #include @@ -1305,6 +1307,7 @@ int main(int argc, char **argv) gid_t gid = 0; int num_threads = DEFAULT_NUM_THREADS; int i; + struct rlimit rlim; for (i = 1; i < argc; i++) { char* arg = argv[i]; @@ -1353,6 +1356,12 @@ int main(int argc, char **argv) return usage(); } + rlim.rlim_cur = 8192; + rlim.rlim_max = 8192; + if (setrlimit(RLIMIT_NOFILE, &rlim)) { + ERROR("Error setting RLIMIT_NOFILE, errno = %d\n", errno); + } + res = run(source_path, dest_path, uid, gid, num_threads); return res < 0 ? 1 : 0; }