parformance patch?

Kris Kennaway kris at obsecurity.org
Fri Aug 3 09:46:23 PDT 2007


On Fri, Aug 03, 2007 at 05:26:49PM +0200, Wojciech Puchar wrote:
> is anything wrong in this?
> 
> --- vm_fault.c.orig     Fri Aug  3 15:01:27 2007
> +++ vm_fault.c  Thu Aug  2 15:56:17 2007
> @@ -113,8 +113,8 @@
>  static int vm_fault_additional_pages(vm_page_t, int, int, vm_page_t *, int 
>  *);
>  static void vm_fault_prefault(pmap_t, vm_offset_t, vm_map_entry_t);
> 
> -#define VM_FAULT_READ_AHEAD 8
> -#define VM_FAULT_READ_BEHIND 7
> +#define VM_FAULT_READ_AHEAD 64
> +#define VM_FAULT_READ_BEHIND 63
>  #define VM_FAULT_READ (VM_FAULT_READ_AHEAD+VM_FAULT_READ_BEHIND+1)
> 
>  struct faultstate {
> 
> 
> and
> 
> --- param.h.orig        Fri Aug  3 15:02:37 2007
> +++ param.h     Wed Jul 11 11:46:24 2007
> @@ -125,7 +125,7 @@
>  #define DFLTPHYS       (64 * 1024)     /* default max raw I/O transfer 
>  size */
>  #endif
>  #ifndef MAXPHYS
> -#define MAXPHYS                (128 * 1024)    /* max raw I/O transfer 
> size */
> +#define MAXPHYS                (512 * 1024)    /* max raw I/O transfer 
> size */
>  #endif
>  #ifndef MAXDUMPPGS
>  #define MAXDUMPPGS     (DFLTPHYS/PAGE_SIZE)
> 
> 
> 
> 
> 
> both works for me and gives noticable speedup, when operating on big files 
> and when starting big apps or swapping.

There are assumptions about the value of MAXPHYS all through the
kernel.  I doubt this patch works properly - it is something that
should be fixed more completely though.

> other question (swap_pager.c):
> 
> /*
>  * SWB_NPAGES must be a power of 2.  It may be set to 1, 2, 4, 8, or 16
>  * pages per allocation.  We recommend you stick with the default of 8.
>  * The 16-page limit is due to the radix code (kern/subr_blist.c).
>  */
> 
> #ifndef MAX_PAGEOUT_CLUSTER
> #define MAX_PAGEOUT_CLUSTER 16
> #endif
> 
> 
> 
> can this be changed/fixed? 64-128 would be nicer...

Why?  i.e. what are the implications of this, good and bad?

Kris


More information about the freebsd-questions mailing list