So took care of the migrate import scenario.
Performance of old (buggy) version with my test data (some but not many big messages):
time /usr/sbin/sendcommand -h /test migr import < /var/tmp/*xml
sendcommand: started (pid=24356) connecting to Citadel server at /test/var/run/citadel/citadel-admin.socket
200 potzblitz Citadel server ADMIN CONNECTION ready.
migr import
400 sock it to me
sendcommand: processing ended.
real 3m2.986s
user 0m1.886s
sys 0m15.951s
Whether one uses Splice or not doesn't seem to be so important
time ./citadel/sendcommand -w 5000 -h /test migr import < /var/tmp/*xml
sendcommand: started (pid=7682) connecting to Citadel server at /test/var/run/citadel/citadel-admin.socket
200 potzblitz Citadel server ADMIN CONNECTION ready.
migr import
400 sock it to me
sendcommand: processing ended.
real 2m14.315s
user 0m0.010s
sys 0m0.350s
So we roughly save 25% real time.
the sendcommand enhancement accounts from 17.8s -> 0.36s
it seems not to be so important whether one uses zerocopy (splice) or blockbuffered read/writing in our scenario.