On those machines, where sf_bufs do not represent any real object, make
sf_buf_alloc()/sf_buf_free() inlines, to save two calls to an absolutely empty functions. Reviewed by: alc, kib, scottl Sponsored by: Nginx, Inc. Sponsored by: Netflix
This commit is contained in:
parent
76c35ba80f
commit
e16477e8d9
@ -59,7 +59,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/mutex.h>
|
||||
#include <sys/pioctl.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/sf_buf.h>
|
||||
#include <sys/smp.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/sysent.h>
|
||||
@ -694,27 +693,6 @@ cpu_reset_real()
|
||||
while(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate an sf_buf for the given vm_page. On this machine, however, there
|
||||
* is no sf_buf object. Instead, an opaque pointer to the given vm_page is
|
||||
* returned.
|
||||
*/
|
||||
struct sf_buf *
|
||||
sf_buf_alloc(struct vm_page *m, int pri)
|
||||
{
|
||||
|
||||
return ((struct sf_buf *)m);
|
||||
}
|
||||
|
||||
/*
|
||||
* Free the sf_buf. In fact, do nothing because there are no resources
|
||||
* associated with the sf_buf.
|
||||
*/
|
||||
void
|
||||
sf_buf_free(struct sf_buf *sf)
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* Software interrupt handler for queued VM system processing.
|
||||
*/
|
||||
|
@ -41,6 +41,18 @@
|
||||
*/
|
||||
struct sf_buf;
|
||||
|
||||
static inline struct sf_buf *
|
||||
sf_buf_alloc(struct vm_page *m, int pri)
|
||||
{
|
||||
|
||||
return ((struct sf_buf *)m);
|
||||
}
|
||||
|
||||
static inline void
|
||||
sf_buf_free(struct sf_buf *sf)
|
||||
{
|
||||
}
|
||||
|
||||
static __inline vm_offset_t
|
||||
sf_buf_kva(struct sf_buf *sf)
|
||||
{
|
||||
|
@ -79,7 +79,6 @@
|
||||
#include <sys/vmmeter.h>
|
||||
#include <sys/kernel.h>
|
||||
#include <sys/mbuf.h>
|
||||
#include <sys/sf_buf.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/unistd.h>
|
||||
|
||||
@ -352,27 +351,6 @@ cpu_exit(struct thread *td)
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate an sf_buf for the given vm_page. On this machine, however, there
|
||||
* is no sf_buf object. Instead, an opaque pointer to the given vm_page is
|
||||
* returned.
|
||||
*/
|
||||
struct sf_buf *
|
||||
sf_buf_alloc(struct vm_page *m, int pri)
|
||||
{
|
||||
|
||||
return ((struct sf_buf *)m);
|
||||
}
|
||||
|
||||
/*
|
||||
* Free the sf_buf. In fact, do nothing because there are no resources
|
||||
* associated with the sf_buf.
|
||||
*/
|
||||
void
|
||||
sf_buf_free(struct sf_buf *sf)
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* Software interrupt handler for queued VM system processing.
|
||||
*/
|
||||
|
@ -41,6 +41,18 @@
|
||||
*/
|
||||
struct sf_buf;
|
||||
|
||||
static inline struct sf_buf *
|
||||
sf_buf_alloc(struct vm_page *m, int pri)
|
||||
{
|
||||
|
||||
return ((struct sf_buf *)m);
|
||||
}
|
||||
|
||||
static inline void
|
||||
sf_buf_free(struct sf_buf *sf)
|
||||
{
|
||||
}
|
||||
|
||||
static __inline vm_page_t
|
||||
sf_buf_page(struct sf_buf *sf)
|
||||
{
|
||||
|
@ -41,6 +41,18 @@
|
||||
/* In 64 bit the whole memory is directly mapped */
|
||||
struct sf_buf;
|
||||
|
||||
static inline struct sf_buf *
|
||||
sf_buf_alloc(struct vm_page *m, int pri)
|
||||
{
|
||||
|
||||
return ((struct sf_buf *)m);
|
||||
}
|
||||
|
||||
static inline void
|
||||
sf_buf_free(struct sf_buf *sf)
|
||||
{
|
||||
}
|
||||
|
||||
static __inline vm_offset_t
|
||||
sf_buf_kva(struct sf_buf *sf)
|
||||
{
|
||||
|
@ -76,7 +76,9 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
#include <sys/user.h>
|
||||
#include <sys/mbuf.h>
|
||||
#ifndef __mips_n64
|
||||
#include <sys/sf_buf.h>
|
||||
#endif
|
||||
|
||||
#ifndef NSFBUFS
|
||||
#define NSFBUFS (512 + maxusers * 16)
|
||||
@ -523,7 +525,6 @@ sf_buf_init(void *arg)
|
||||
}
|
||||
sf_buf_alloc_want = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Get an sf_buf from the freelist. Will block if none are available.
|
||||
@ -531,7 +532,6 @@ sf_buf_init(void *arg)
|
||||
struct sf_buf *
|
||||
sf_buf_alloc(struct vm_page *m, int flags)
|
||||
{
|
||||
#ifndef __mips_n64
|
||||
struct sf_buf *sf;
|
||||
int error;
|
||||
|
||||
@ -560,9 +560,6 @@ sf_buf_alloc(struct vm_page *m, int flags)
|
||||
}
|
||||
mtx_unlock(&sf_freelist.sf_lock);
|
||||
return (sf);
|
||||
#else
|
||||
return ((struct sf_buf *)m);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
@ -571,7 +568,6 @@ sf_buf_alloc(struct vm_page *m, int flags)
|
||||
void
|
||||
sf_buf_free(struct sf_buf *sf)
|
||||
{
|
||||
#ifndef __mips_n64
|
||||
pmap_qremove(sf->kva, 1);
|
||||
mtx_lock(&sf_freelist.sf_lock);
|
||||
SLIST_INSERT_HEAD(&sf_freelist.sf_head, sf, free_list);
|
||||
@ -579,8 +575,8 @@ sf_buf_free(struct sf_buf *sf)
|
||||
if (sf_buf_alloc_want > 0)
|
||||
wakeup(&sf_freelist);
|
||||
mtx_unlock(&sf_freelist.sf_lock);
|
||||
#endif
|
||||
}
|
||||
#endif /* !__mips_n64 */
|
||||
|
||||
/*
|
||||
* Software interrupt handler for queued VM system processing.
|
||||
|
Loading…
Reference in New Issue
Block a user