summaryrefslogtreecommitdiffstats
path: root/sys/compat/linux
diff options
context:
space:
mode:
authorluoqi <luoqi@FreeBSD.org>1999-04-28 01:04:33 +0000
committerluoqi <luoqi@FreeBSD.org>1999-04-28 01:04:33 +0000
commitaf7e9be5cce9a2ceb819f00b3f58014d23ab57cd (patch)
tree0e70c0e764f072d43041acca8ac52e30616dced3 /sys/compat/linux
parent0f4a245030e7f1acb03f8de0822a58b188fc0d28 (diff)
downloadFreeBSD-src-af7e9be5cce9a2ceb819f00b3f58014d23ab57cd.zip
FreeBSD-src-af7e9be5cce9a2ceb819f00b3f58014d23ab57cd.tar.gz
Enable vmspace sharing on SMP. Major changes are,
- %fs register is added to trapframe and saved/restored upon kernel entry/exit. - Per-cpu pages are no longer mapped at the same virtual address. - Each cpu now has a separate gdt selector table. A new segment selector is added to point to per-cpu pages, per-cpu global variables are now accessed through this new selector (%fs). The selectors in gdt table are rearranged for cache line optimization. - fask_vfork is now on as default for both UP and SMP. - Some aio code cleanup. Reviewed by: Alan Cox <alc@cs.rice.edu> John Dyson <dyson@iquest.net> Julian Elischer <julian@whistel.com> Bruce Evans <bde@zeta.org.au> David Greenman <dg@root.com>
Diffstat (limited to 'sys/compat/linux')
-rw-r--r--sys/compat/linux/linux_misc.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c
index 68a2d43..e01693a 100644
--- a/sys/compat/linux/linux_misc.c
+++ b/sys/compat/linux/linux_misc.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: linux_misc.c,v 1.55 1999/04/27 11:15:32 phk Exp $
+ * $Id: linux_misc.c,v 1.56 1999/04/27 12:21:04 phk Exp $
*/
#include <sys/param.h>
@@ -531,18 +531,18 @@ select_out:
int
linux_getpgid(struct proc *p, struct linux_getpgid_args *args)
{
- struct proc *curproc;
+ struct proc *curp;
#ifdef DEBUG
printf("Linux-emul(%d): getpgid(%d)\n", p->p_pid, args->pid);
#endif
if (args->pid != p->p_pid) {
- if (!(curproc = pfind(args->pid)))
+ if (!(curp = pfind(args->pid)))
return ESRCH;
}
else
- curproc = p;
- p->p_retval[0] = curproc->p_pgid;
+ curp = p;
+ p->p_retval[0] = curp->p_pgid;
return 0;
}
@@ -576,10 +576,6 @@ linux_clone(struct proc *p, struct linux_clone_args *args)
vm_offset_t start;
struct rfork_args rf_args;
-#ifdef SMP
- printf("linux_clone(%d): does not work with SMP yet\n", p->p_pid);
- return (EOPNOTSUPP);
-#endif
#ifdef DEBUG
if (args->flags & CLONE_PID)
printf("linux_clone(%d): CLONE_PID not yet supported\n", p->p_pid);
OpenPOWER on IntegriCloud