Re: AoE performance on small boxes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello aoetools-discuss,

Hi again, sending more 'clean' diff with RX ring, buffering, and
something more (details below)... Also refactored code (including 
existing... a bit :), moved config defines to config.h, added 
some documentation into readme, config.h and usage text (BTW also 
added usage hint for existing command line switches). Also added 
image file locking when its opened for write access to avoid 
accident launching of 2 copies of vblade for same file that can 
corrupt data (remember write buffering). Also since I found and 
read 'hacking' - this time I created diff with -uprN option:) 

Details about 'something more' - there was another email thread 
where I worried about data integrity vs hw duplicated packets. 
I implemented  experimental tags tracking functionality that can 
be used _only_ if initiator uses Aoehdr::tag field as monotonically 
incrementing little ending counter per each unique ATA command.
If it doesn't do so - this functionality shouldn't be used and
thats why its disabled by default but can be enabled by
-t and -T command line switches:

-T - enables tracking of last 32768 tags (ring sliding window used),
If write command with same mac-mask/tag appears as it was before - 
vblade will blindly reply without any processing at all. So using 
this  option with initiator that doesn't comply above Aoehdr::tag 
field behaviour is extremely dangerous. WinAoE 0.97g is good for 
that - I checked its source code. Others may not.

-t - called 'RX tags tracking' - this is more performance than 
integrity improvement and it safe in term of integrity, It uses 
benefits of RX memmaped ringbuffer receiving (and works only when 
compiled with its support).
Since during bulk x-fer kernel puts so many packets into ring buffer 
as it can fit there - so instead of dealing with each single packet 
one-by-one its now possible to loop over all present packets in 
buffer and eliminate duplicates that often present there due to
initiator re-transmits identical packets from time to time after 
some timeout waiting for reply. So if any dublicate found (by
comparing mac-mask/tag) - it silently dropped. Thats why this is
safe - if this code will drop something important - initiator will 
re-transmit it after some time, so most worst thing can happen if
used -t option is incorrect initiator - performance may degrade.
But if this option will be used with 'right' initiator - CPU and
network load will lower, since most reduntant packets will not be
processed and replied anymore.


I tested this changes by running coping process of ~200GB up and 
down and checked that resulted files are binary identical. Sure
its much far from production-safe but seems its good for testing.
Also most of above description briefely included into README
together with a proposed solution what to do to identify correct 
initiator if developers will decide to use this one day.

-- 
Best regards,
 Killer{R}                          mailto:support@xxxxxxxxxxxx

<<attachment: vblade_rxring_tagstrack_writebuf.zip>>

------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Aoetools-discuss mailing list
Aoetools-discuss@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/aoetools-discuss

[Index of Archives]     [Linux ARM Kernel]     [Linux SCSI]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux