[vbox-dev] [PATCH] performance improvements for Solaris guest shared folders

Ramshankar ramshankar.venkataraman at oracle.com
Thu Nov 17 13:30:51 GMT 2011


On 11/17/11 06:27 AM, Life is hard, and then you die wrote:
> On Tue, Nov 15, 2011 at 05:56:22PM +0100, Ramshankar wrote:
>> I've applied all the patches with some minor adjustments. Only the
>> bug fixes have been backported to 4.1.x. The performance fixes will
>> require more testing before I backport them.
>
> Excellent! Thank you.
>
> However, one more small issue: it appears two lines got dropped when
> applying the last patch (Pass file/dir mode directly to create/mkdir
> call) - the remaining diff I have is:
>
> ----------------------------------------------------------------------
> --- a/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c
> +++ b/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c
> @@ -587,11 +587,13 @@ sfnode_lookup(
>           */
>          if (create == VREG) {
>                  type = VREG;
> +               stat =&tmp_stat;
>                  error = sfprov_create(dir->sf_sffs->sf_handle, fullpath, c_mode,
>                                          &fp, stat);
>                  stat_time = sfnode_cur_time_usec();
>          } else if (create == VDIR) {
>                  type = VDIR;
> +               stat =&tmp_stat;
>                  error = sfprov_mkdir(dir->sf_sffs->sf_handle, fullpath, c_mode,
>                                          &fp, stat);
>                  stat_time = sfnode_cur_time_usec();
> ----------------------------------------------------------------------
>
> These are needed because the passed in stat may be NULL (and in fact it
> is always NULL in the current code paths). Also, even if it isn't NULL,
> it would be questionable to modify the contents of the passed in stat.

It won't be NULL in the symlink case but yeah we shouldn't be modifying 
the passed-in stat there. Will change it. Thanks

Regards,
Ram.


>
>    Cheers,
>
>    Ronald
>
>
>> On 11/11/11 06:06 PM, Ramshankar wrote:
>>> Two more patches left to apply, one is the code refactor without
>>> functional changes and the other is passing file/dir mode to
>>> create/mkdir without separate calls to get_attr.
>>>
>>> Will integrate these two next week.
>>>
>>> Regards,
>>> Ram.
>>>
>>>
>>> On 11/10/11 11:17 AM, Ramshankar wrote:
>>>> On 11/10/11 03:31 AM, Life is hard, and then you die wrote:
>>>>> On Wed, Nov 09, 2011 at 02:05:50PM +0100, Ramshankar wrote:
>>>>>> Thought I'd give a status update.
>>>>>>
>>>>>> I've integrated the following patches (with some minor
>>>>>> changes/additions) after testing them out a bit.
>>>>>>
>>>>>> vbox.panic-params.patch
>>>>>> vbox.stat-ttl.patch
>>>>>> vbox.dir-seek.patch
>>>>>>
>>>>>> I'm giving more priority to the patches that address bugs. Patches
>>>>>> that improve performance will also be integrated but after the
>>>>>> bug-fix ones are done.
>>>>>
>>>>> Thanks! I completely understand. As you've probably already figured
>>>>> out, the above plus the vbox.dir-stat.patch and vbox.alloc-size.patch
>>>>> are basically bug fixes; the vbox.pre-symlink-refactor.patch and
>>>>> vbox.symlink.patch are an enhancement (i.e. symlink support); the rest
>>>>> of the patches are purely performance and related refactoring.
>>>>
>>>> Yes, I had an overview of them all. I also added some other minor fixes
>>>> like using strncpy() so we don't write past the d_name size and such.
>>>> I've also integrated the vbox.dir-stat.patch. Will continue with the
>>>> other patches in the coming days. Thanks&  Regards,
>>>>
>>>> Ram.
>>>>
>>>>
>>>>>
>>>>> Cheers,
>>>>>
>>>>> Ronald
>>>>>
>>>>>
>>>>>> On 11/ 6/11 07:45 AM, Life is hard, and then you die wrote:
>>>>>>> On Sat, Nov 05, 2011 at 04:29:32AM -0700, Life is hard, and then you
>>>>>>> die wrote:
>>>>>>>> On Tue, Jan 18, 2011 at 10:45:16AM +0100, Frank Mehnert wrote:
>>>>>>>>>
>>>>>>>>> On Sunday 16 January 2011 11:50:06 Life is hard, and then you die
>>>>>>>>> wrote:
>>>>>>>>>> Attached are some patches to improve the performance of
>>>>>>>>>> shared-folders
>>>>>>>>>> in Solaris guests. Together they speed up things between 2 to 4
>>>>>>>>>> times:
>>>>>>>>>> operations like untarring and deleting whole directory tree are
>>>>>>>>>> typically 2 to 2.5 times faster, and when running builds that
>>>>>>>>>> include
>>>>>>>>>> things like building Solaris packages I see a speedup of 3 to
>>>>>>>>>> almost 4.
>>>>>>>>>> The bulk of the speedup comes from the second (file open) patch.
>>>>>>>>>>
>>>>>>>>>> These patches assume my previously sent patches have been applied.
>>>>>>>>>>
>>>>>>>>>> Licensed under MIT/public-domain.
>>>>>>>>>
>>>>>>>>> Thank you very much for this code contribution! We will revise it
>>>>>>>>> a bit
>>>>>>>>> later as our colleague which maintains this code is currently not
>>>>>>>>> available.
>>>>>>>>
>>>>>>>> I don't want to appear pushy, but since I've seen that some work has
>>>>>>>> been done in recent weeks on the Solaris shared-folders code, I'm
>>>>>>>> wondering if you might have time to review the patches. I rebased
>>>>>>>> them
>>>>>>>> onto svn rev 39192 (and updated to VB 4.1.6) and they appear to still
>>>>>>>> work fine on Solaris 10u8 (after disabling the mmap support - see
>>>>>>>> https://www.virtualbox.org/ticket/9856).
>>>>>>>>
>>>>>>>> For your convenience I've attached the rebased patches (in the order
>>>>>>>> they should be applied), though all in one email instead of spread
>>>>>>>> over 4 separate emails like last Jan.
>>>>>>>
>>>>>>> Argh! I just realized that the symlink deletion issue was fixed a
>>>>>>> while ago, so the hack in vbox.symlink.patch is not necessary anymore
>>>>>>> (yay!). Since updating this patch causes some subsequent patches to
>>>>>>> not apply cleanly anymore, I'm just re-sending the full list of
>>>>>>> patches (i.e. please ignore those I sent yesterday).
>>>>>>>
>>>>>>>
>>>>>>> Cheers,
>>>>>>>
>>>>>>> Ronald
>>>>>>>
>
> _______________________________________________
> vbox-dev mailing list
> vbox-dev at virtualbox.org
> https://www.virtualbox.org/mailman/listinfo/vbox-dev





More information about the vbox-dev mailing list