Fix a Hyper-V Synthetic Driver Issue US$500
-
The previous version of the Hyper-V drivers (older than those included with FreeBSD 10.0 Release) contain a bug in which the management of a critical thread lock is not handled properly. It does not seem to cause an issue for systems allocated two NICs at low transfer speeds (below 100Mbits). I have been able to consistently cause a kernel panic in pfsense 2.1 with the original Hyper-V drivers when the VM has three or more NICs and is moving data at rates above 100Mbits.
I would propose a back port of the drivers included with FreeBSD 10.0 Release as a resolution to your problem.
-
The previous version of the Hyper-V drivers (older than those included with FreeBSD 10.0 Release) contain a bug in which the management of a critical thread lock is not handled properly. It does not seem to cause an issue for systems allocated two NICs at low transfer speeds (below 100Mbits). I have been able to consistently cause a kernel panic in pfsense 2.1 with the original Hyper-V drivers when the VM has three or more NICs and is moving data at rates above 100Mbits.
I would propose a back port of the drivers included with FreeBSD 10.0 Release as a resolution to your problem.
I had a look at the code and the changes and it looks like it goes rather deep. Would need to grab all the different source versions and put it through a differencing then apply all the base file changes across to support the newer driver source. Best bet would be the newer release of pfsense? Anyone try one of the alpha builds based on FreeBSD 10?
-
I have tried to compile the development branch against FreeBSD 10.0 Release. I did not get very far with the various build errors. It would appear the development team is still working on getting the environment copasetic with the new OS.
-
I have tried to compile the development branch against FreeBSD 10.0 Release. I did not get very far with the various build errors. It would appear the development team is still working on getting the environment copasetic with the new OS.
https://forum.pfsense.org/index.php/topic,72887.0.html
-
I just did it.
I was able to re-compile the hyperv-ic 1.0 drivers (the updated drivers as of 2 months ago, included in FreeBSD 10 and available for FreeBSD 8.3) so they would be compatible with pfSense. I loaded them in a running 2.1 VM, and was able to assign interfaces and remove the legacy adapters.
To stress the network driver, I copied files over Gbe using scp at full speed while running a 10 Mbps internet speed test (that's all my ISP offers in this area). The VM hasn't failed - I hadn't experienced the crashes other users have seen with the August 2012 "beta" drivers, so I can't fully confirm it fixes those issues, but it seems encouraging that it handles this level of stress on both LAN and WAN interfaces w/o any problems.
To test it further, I configured the VM as my primary personal router (restored my existing pfSense 2.1 XML config) and everything seems to be working (internet access, IPSec and OpenVPN VPNs, etc).
I'd like to do some more testing (check the disk driver, test/compile for 2.1.1, maybe try and make an ISO so it is easier for novice users) and go over my notes and document the process - all in case I should do some more tweaks before distributing these binaries. In the next few days, I'll report back, post the binaries and instructions, and start a thread in the virtualization forum, to get more people involved in testing.
-
I started a new thread in the Virtualization board and uploaded the new drivers in https://forum.pfsense.org/index.php/topic,73258.0.html
If you had issues with the old drivers, please give the new drivers a try and let us know how they work in your environment.
-
After months of testing and overwhelming positive feedback, it's clear the drivers I compiled work more than ok for most environments.
Early on, I contacted carlmeek to see if he needed help testing the new drivers, and to see if they met the bounty requirements. Having just gone through considerable upheaval in their environment (which the other versions helped somewhat), he was reticent to introduce these new drivers before they got more mileage from other users and there was more feedback: he had a solution that seemed stable enough. Since then, I've sent other PMs after it became even more clear that the new drivers work much better than all prior solutions, and that Heartbleed and other security patches were integrated into pfSense (requiring updating all pfSense installations), but I've gotten no replies.
I devoted considerable time and resources chasing this bounty (the "fix" seems simple once you figure it out and look backwards, but it is very time and resource intensive to try different things to figure it out). And I've kept trying to integrate the drivers into the 2.1.x ISO build process, with moderate success, so they can be distributed as part of an official release. However, w/o the hope of ever winning the bounty, I can't afford to devote enough time to integrating the drivers into the 2.1.3+ build process in a timely manner (specially given that at this rate, pfSense 2.2 with native hyperv support might be released by then, rendering all my efforts moot).
I haven't had a chance to test it first hand, but it seems that 2.2 is coming along nicely, and that we might see a release sooner than later. Then again, it might take months, and we don't know yet what features and configuration changes might need tweaking between 2.1.x and 2.2.
So, in the mean time, I'll try and keep working on the ISO integration for 2.1.x, if only to give the community options, but if carlmeek comes back, or if there are other commercial users willing to replenish the bounty, it would enable me to devote more time and resources to the 2.1.x driver integration ISO build.
-
After months of testing and overwhelming positive feedback, it's clear the drivers I compiled work more than ok for most environments.
Early on, I contacted carlmeek to see if he needed help testing the new drivers, and to see if they met the bounty requirements. Having just gone through considerable upheaval in their environment (which the other versions helped somewhat), he was reticent to introduce these new drivers before they got more mileage from other users and there was more feedback: he had a solution that seemed stable enough. Since then, I've sent other PMs after it became even more clear that the new drivers work much better than all prior solutions, and that Heartbleed and other security patches were integrated into pfSense (requiring updating all pfSense installations), but I've gotten no replies.
I devoted considerable time and resources chasing this bounty (the "fix" seems simple once you figure it out and look backwards, but it is very time and resource intensive to try different things to figure it out). And I've kept trying to integrate the drivers into the 2.1.x ISO build process, with moderate success, so they can be distributed as part of an official release. However, w/o the hope of ever winning the bounty, I can't afford to devote enough time to integrating the drivers into the 2.1.3+ build process in a timely manner (specially given that at this rate, pfSense 2.2 with native hyperv support might be released by then, rendering all my efforts moot).
I haven't had a chance to test it first hand, but it seems that 2.2 is coming along nicely, and that we might see a release sooner than later. Then again, it might take months, and we don't know yet what features and configuration changes might need tweaking between 2.1.x and 2.2.
So, in the mean time, I'll try and keep working on the ISO integration for 2.1.x, if only to give the community options, but if carlmeek comes back, or if there are other commercial users willing to replenish the bounty, it would enable me to devote more time and resources to the 2.1.x driver integration ISO build.
Sounds like a lot of work. I would wait for FREEBSD 10 based release really. Have you been poking around the 2.2 alpha?