aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Bersenev <bay@hackerdom.ru>2011-06-18 15:59:37 +0000
committerAlexander Bersenev <bay@hackerdom.ru>2011-06-18 15:59:37 +0000
commit01807c6d423c98886fc71198f031adc7f38845bf (patch)
treea1d198fda4f25e64c812c6ad09683fd7737cfb30
parentsimplify the protocol to make its parsing quick (diff)
downloadautodep-01807c6d423c98886fc71198f031adc7f38845bf.tar.gz
autodep-01807c6d423c98886fc71198f031adc7f38845bf.tar.bz2
autodep-01807c6d423c98886fc71198f031adc7f38845bf.zip
another performace improvements
-rw-r--r--logger/src/autodep/logfs/fstracer.py2
-rw-r--r--logger/src/hook_fusefs/hookfs.c11
2 files changed, 10 insertions, 3 deletions
diff --git a/logger/src/autodep/logfs/fstracer.py b/logger/src/autodep/logfs/fstracer.py
index fec926c..95d64f5 100644
--- a/logger/src/autodep/logfs/fstracer.py
+++ b/logger/src/autodep/logfs/fstracer.py
@@ -173,7 +173,7 @@ def getfsevents(prog_name,arguments,approach="hooklib",filterproc=defaultfilter)
input.append(client)
buffers[client]=""
else:
- data=s.recv(4096)
+ data=s.recv(65536)
buffers[s]+=data
diff --git a/logger/src/hook_fusefs/hookfs.c b/logger/src/hook_fusefs/hookfs.c
index 3545151..9241a2a 100644
--- a/logger/src/hook_fusefs/hookfs.c
+++ b/logger/src/hook_fusefs/hookfs.c
@@ -46,6 +46,8 @@
#define MAXSOCKETPATHLEN 108
#define MAXFILEBUFFLEN 2048
+#define IOBUFSIZE 65536
+
struct hookfs_config {
int argv_debug;
@@ -202,7 +204,6 @@ static void raw_log_event(const char *event_type, const char *filename, char *re
fprintf(log_file,"%s",result);
fprintf(log_file,"%c%c",0,0);
- fflush(log_file);
}
/*
@@ -229,10 +230,10 @@ static int is_event_allowed(const char *event_type,const char *filename, pid_t p
// sending asking log_event
raw_log_event(event_type,filename,"ASKING",0,stage);
+ fflush(log_file);
char answer[8];
fscanf(log_file,"%7s",answer);
- fflush(log_file); // yes, it is here too
pthread_mutex_unlock( &socketblock );
if(strcmp(answer,"ALLOW")==0)
@@ -1113,6 +1114,12 @@ int main(int argc, char *argv[]) {
fprintf(stderr,"Unable to open a socket for a steam writing: %s\n", strerror(errno));
exit(1);
}
+
+ ret=setvbuf(log_file,NULL,_IOFBF,IOBUFSIZE);
+ if(ret!=0){
+ fprintf(stderr,"Unable to set a size of io buffer");
+ exit(1);
+ }
}
if (! try_chdir_to_mountpoint(args.argc, args.argv)) {