[syslinux] "Tick-counting" vs "Tick-less" timekeeping issues on VMs emulating BIOS PCs

Gene Cumm gene.cumm at gmail.com
Tue Mar 8 03:38:44 PST 2016


On Mon, Mar 7, 2016 at 10:50 AM, Patrick Masotta via Syslinux
<syslinux at zytor.com> wrote:
>>>>
>
> ...
> Bottom line; There are timing issues with TFTP transfers
> on VM machines emulating BIOS hardware.
> Probably the interrupt based timer is not the culprit;
> now I'm working on /core/fs/pxe/core.c trying to see if
> there's something wrong there.
>
> Best,
>
> Patrick
> <<<
>
> I've been working on this issue, I have tested the timers,
> and as you guys mentioned before they are OK.
> I've noticed that if the VMware VM uses the driver e1000e everything is "OK"
> but if the VM uses the "vmxnet3" the problem is there.
> I have attached a small pcap file showing the end of the lpxelinux.0 TFTP transfer and the
>
> beginning of the problematic ldlinux.c32 transfer.
> I wonder if the "vmxnet3" driver is probably "too fast" for the Sequential lwIP API?

It's been a while since I bothered looking at the lpxelinux.0/TFTP
issue in my VMware Workstation VMs.  From what I recall, the vmxnet3
had the biggest issues and the others vlance/pcnet32, e1000, and
e1000e, still had issues but to a far lower extent, topping out around
1-2 MB/s.

Working in a VMware vSphere environment, VMware Workstation is a
better fit for me and has been my primary testing area for years.  At
the moment, I have at least 6 different VMs on my main PC with
different configs whose sole purpose is Syslinux testing.  vmxnet3 is
designed to move data with the least CPU overhead possible when used
with a typical OS.  e1000/e1000e can get into the 2-2.5 Gbps range
when intrahost and across a 10+ Gbps vmnic uplink but vmxnet3 can push
past this with relative ease.

-- 
-Gene


More information about the Syslinux mailing list