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

Life is hard, and then you die ronald at innovation.ch
Thu Nov 17 05:27:09 GMT 2011


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.


  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
> >>>>>




More information about the vbox-dev mailing list