Status of Flash 9 on stable

Kostik Belousov kostikbel at gmail.com
Thu Oct 16 13:22:47 PDT 2008


On Thu, Oct 16, 2008 at 02:25:37PM -0500, Mark Kane wrote:
> On Tue, Oct 14, 2008, at 22:28:58 +0200, Tijl Coosemans wrote:
> > Patches have been committed to CURRENT and should have been MFC'ed
> > last weekend, but haven't for some reason.
> > 
> > The port has a PR waiting for maintainer feedback:
> > http://www.freebsd.org/cgi/query-pr.cgi?pr=127839
> > 
> > The relevant thread on emulation@ is:
> > http://lists.freebsd.org/pipermail/freebsd-emulation/2008-September/005311.html
> > (continues in October archives)
> 
> Hi.
> 
> I'm using RELENG_7 as of yesterday which appears to have the linprocfs
> fixes from CURRENT, and I also updated linux-flashplayer9 with the
> patch from the above PR.
> 
> When trying to use Flash 9 in linux-opera a few Flash items work (such
> as Adobe's test page which confirms it is using version 9 and sound
> does work on the rollovers there), but most things including YouTube
> videos or videos from other sites either do not play at all and lock up
> immediately or play for a few seconds and then lock up:
> 
> ----------------
> opera: Plug-in 90514 is not responding. It will be closed.
> opera: Define environment variable OPERA_KEEP_BLOCKED_PLUGIN to keep
> blocked plug-ins.
> ----------------
> 
> Trying with linux-firefox and linux-firefox-devel gives similar
> results except Firefox crashes entirely on most Flash sites.
> 
> I was using linux_base-fc4 and 2.4.2 however I updated to linux_base-f8
> and 2.6.16 since I saw others in the above emulation@ thread having
> success with f8. There doesn't seem to be any change with f8.
> 
> Is this still the expected behavior? I'm not sure if these fixes were
> supposed to fix everything related to Flash 9 or if there are still
> things to be done, so I'm just giving it a try and posting the results.
> I am running amd64 by the way.
> 
> Thanks very much in advance,

Hmm, finaly I noted this thread. There is one more patch in the pipeline
for 7 that is needed, as I was told. Testing of that patch seems to be
stalled, so I am interested in the feedback.

Possible rejects of the $FreeBSD$ chunks are fine.

Property changes on: .
___________________________________________________________________
Modified: svn:mergeinfo
   Merged /head/sys:r177257,177604,183612

Index: compat/linux/linux_misc.c
===================================================================
--- compat/linux/linux_misc.c	(revision 183958)
+++ compat/linux/linux_misc.c	(working copy)
@@ -63,6 +63,7 @@
 #include <sys/vmmeter.h>
 #include <sys/vnode.h>
 #include <sys/wait.h>
+#include <sys/cpuset.h>
 
 #include <security/mac/mac_framework.h>
 
@@ -1730,22 +1731,57 @@
 }
 
 /*
- * XXX: fake one.. waiting for real implementation of affinity mask.
+ * Get affinity of a process.
  */
 int
 linux_sched_getaffinity(struct thread *td,
     struct linux_sched_getaffinity_args *args)
 {
 	int error;
-	cpumask_t i = ~0;
+	struct cpuset_getaffinity_args cga;
 
-	if (args->len < sizeof(cpumask_t))
+#ifdef DEBUG
+	if (ldebug(sched_getaffinity))
+		printf(ARGS(sched_getaffinity, "%d, %d, *"), args->pid,
+		    args->len);
+#endif
+	if (args->len < sizeof(cpuset_t))
 		return (EINVAL);
 
-	error = copyout(&i, args->user_mask_ptr, sizeof(cpumask_t));
-	if (error)
-		return (EFAULT);
+	cga.level = CPU_LEVEL_WHICH;
+	cga.which = CPU_WHICH_PID;
+	cga.id = args->pid;
+	cga.cpusetsize = sizeof(cpuset_t);
+	cga.mask = (cpuset_t *) args->user_mask_ptr;
 
-	td->td_retval[0] = sizeof(cpumask_t);
-	return (0);
+	if ((error = cpuset_getaffinity(td, &cga)) == 0)
+		td->td_retval[0] = sizeof(cpuset_t);
+
+	return (error);
 }
+
+/*
+ *  Set affinity of a process.
+ */
+int
+linux_sched_setaffinity(struct thread *td,
+    struct linux_sched_setaffinity_args *args)
+{
+	struct cpuset_setaffinity_args csa;
+
+#ifdef DEBUG
+	if (ldebug(sched_setaffinity))
+		printf(ARGS(sched_setaffinity, "%d, %d, *"), args->pid,
+		    args->len);
+#endif
+	if (args->len < sizeof(cpuset_t))
+		return (EINVAL);
+
+	csa.level = CPU_LEVEL_WHICH;
+	csa.which = CPU_WHICH_PID;
+	csa.id = args->pid;
+	csa.cpusetsize = sizeof(cpuset_t);
+	csa.mask = (cpuset_t *) args->user_mask_ptr;
+
+	return (cpuset_setaffinity(td, &csa));
+}
Index: i386/linux/linux_syscall.h
===================================================================
--- i386/linux/linux_syscall.h	(revision 183958)
+++ i386/linux/linux_syscall.h	(working copy)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.89 2007/09/18 19:50:33 dwmalone Exp 
+ * created from FreeBSD: stable/7/sys/i386/linux/syscalls.master 172220 2007-09-18 19:50:33Z dwmalone 
  */
 
 #define	LINUX_SYS_exit	1
@@ -228,6 +228,7 @@
 #define	LINUX_SYS_linux_fremovexattr	237
 #define	LINUX_SYS_linux_tkill	238
 #define	LINUX_SYS_linux_sys_futex	240
+#define	LINUX_SYS_linux_sched_setaffinity	241
 #define	LINUX_SYS_linux_sched_getaffinity	242
 #define	LINUX_SYS_linux_set_thread_area	243
 #define	LINUX_SYS_linux_get_thread_area	244
Index: i386/linux/linux_sysent.c
===================================================================
--- i386/linux/linux_sysent.c	(revision 183958)
+++ i386/linux/linux_sysent.c	(working copy)
@@ -3,10 +3,9 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.89 2007/09/18 19:50:33 dwmalone Exp 
+ * created from FreeBSD: stable/7/sys/i386/linux/syscalls.master 172220 2007-09-18 19:50:33Z dwmalone 
  */
 
-#include <bsm/audit_kevents.h>
 #include <sys/param.h>
 #include <sys/sysent.h>
 #include <sys/sysproto.h>
@@ -260,7 +259,7 @@
 	{ AS(linux_tkill_args), (sy_call_t *)linux_tkill, AUE_NULL, NULL, 0, 0 },	/* 238 = linux_tkill */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 239 = linux_sendfile64 */
 	{ AS(linux_sys_futex_args), (sy_call_t *)linux_sys_futex, AUE_NULL, NULL, 0, 0 },	/* 240 = linux_sys_futex */
-	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 241 = linux_sched_setaffinity */
+	{ AS(linux_sched_setaffinity_args), (sy_call_t *)linux_sched_setaffinity, AUE_NULL, NULL, 0, 0 },	/* 241 = linux_sched_setaffinity */
 	{ AS(linux_sched_getaffinity_args), (sy_call_t *)linux_sched_getaffinity, AUE_NULL, NULL, 0, 0 },	/* 242 = linux_sched_getaffinity */
 	{ AS(linux_set_thread_area_args), (sy_call_t *)linux_set_thread_area, AUE_NULL, NULL, 0, 0 },	/* 243 = linux_set_thread_area */
 	{ AS(linux_get_thread_area_args), (sy_call_t *)linux_get_thread_area, AUE_NULL, NULL, 0, 0 },	/* 244 = linux_get_thread_area */
Index: i386/linux/syscalls.master
===================================================================
--- i386/linux/syscalls.master	(revision 183958)
+++ i386/linux/syscalls.master	(working copy)
@@ -409,7 +409,8 @@
 239	AUE_SENDFILE	UNIMPL	linux_sendfile64
 240	AUE_NULL	STD	{ int linux_sys_futex(void *uaddr, int op, int val, \
 					struct l_timespec *timeout, void *uaddr2, int val3); }
-241	AUE_NULL	UNIMPL	linux_sched_setaffinity
+241	AUE_NULL	STD	{ int linux_sched_setaffinity(l_pid_t pid, l_uint len, \
+					l_ulong *user_mask_ptr); }
 242	AUE_NULL	STD	{ int linux_sched_getaffinity(l_pid_t pid, l_uint len, \
 					l_ulong *user_mask_ptr); }
 243	AUE_NULL	STD	{ int linux_set_thread_area(struct l_user_desc *desc); }
Index: i386/linux/linux_proto.h
===================================================================
--- i386/linux/linux_proto.h	(revision 183958)
+++ i386/linux/linux_proto.h	(working copy)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.89 2007/09/18 19:50:33 dwmalone Exp 
+ * created from FreeBSD: stable/7/sys/i386/linux/syscalls.master 172220 2007-09-18 19:50:33Z dwmalone 
  */
 
 #ifndef _LINUX_SYSPROTO_H_
@@ -11,6 +11,7 @@
 
 #include <sys/signal.h>
 #include <sys/acl.h>
+#include <sys/cpuset.h>
 #include <sys/_semaphore.h>
 #include <sys/ucontext.h>
 
@@ -731,6 +732,11 @@
 	char uaddr2_l_[PADL_(void *)]; void * uaddr2; char uaddr2_r_[PADR_(void *)];
 	char val3_l_[PADL_(int)]; int val3; char val3_r_[PADR_(int)];
 };
+struct linux_sched_setaffinity_args {
+	char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
+	char len_l_[PADL_(l_uint)]; l_uint len; char len_r_[PADR_(l_uint)];
+	char user_mask_ptr_l_[PADL_(l_ulong *)]; l_ulong * user_mask_ptr; char user_mask_ptr_r_[PADR_(l_ulong *)];
+};
 struct linux_sched_getaffinity_args {
 	char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
 	char len_l_[PADL_(l_uint)]; l_uint len; char len_r_[PADR_(l_uint)];
@@ -1124,6 +1130,7 @@
 int	linux_fremovexattr(struct thread *, struct linux_fremovexattr_args *);
 int	linux_tkill(struct thread *, struct linux_tkill_args *);
 int	linux_sys_futex(struct thread *, struct linux_sys_futex_args *);
+int	linux_sched_setaffinity(struct thread *, struct linux_sched_setaffinity_args *);
 int	linux_sched_getaffinity(struct thread *, struct linux_sched_getaffinity_args *);
 int	linux_set_thread_area(struct thread *, struct linux_set_thread_area_args *);
 int	linux_get_thread_area(struct thread *, struct linux_get_thread_area_args *);
@@ -1380,6 +1387,7 @@
 #define	LINUX_SYS_AUE_linux_fremovexattr	AUE_NULL
 #define	LINUX_SYS_AUE_linux_tkill	AUE_NULL
 #define	LINUX_SYS_AUE_linux_sys_futex	AUE_NULL
+#define	LINUX_SYS_AUE_linux_sched_setaffinity	AUE_NULL
 #define	LINUX_SYS_AUE_linux_sched_getaffinity	AUE_NULL
 #define	LINUX_SYS_AUE_linux_set_thread_area	AUE_NULL
 #define	LINUX_SYS_AUE_linux_get_thread_area	AUE_NULL
Index: amd64/linux32/linux32_syscall.h
===================================================================
--- amd64/linux32/linux32_syscall.h	(revision 183958)
+++ amd64/linux32/linux32_syscall.h	(working copy)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.29 2007/08/28 12:26:34 kib Exp 
+ * created from FreeBSD: stable/7/sys/amd64/linux32/syscalls.master 172220 2007-09-18 19:50:33Z dwmalone 
  */
 
 #define	LINUX_SYS_exit	1
@@ -222,6 +222,7 @@
 #define	LINUX_SYS_linux_fremovexattr	237
 #define	LINUX_SYS_linux_tkill	238
 #define	LINUX_SYS_linux_sys_futex	240
+#define	LINUX_SYS_linux_sched_setaffinity	241
 #define	LINUX_SYS_linux_sched_getaffinity	242
 #define	LINUX_SYS_linux_set_thread_area	243
 #define	LINUX_SYS_linux_fadvise64	250
Index: amd64/linux32/syscalls.master
===================================================================
--- amd64/linux32/syscalls.master	(revision 183958)
+++ amd64/linux32/syscalls.master	(working copy)
@@ -407,7 +407,8 @@
 239	AUE_SENDFILE	UNIMPL	linux_sendfile64
 240	AUE_NULL	STD	{ int linux_sys_futex(void *uaddr, int op, int val, \
 					struct l_timespec *timeout, void *uaddr2, int val3); }
-241	AUE_NULL	UNIMPL	linux_sched_setaffinity
+241	AUE_NULL	STD	{ int linux_sched_setaffinity(l_pid_t pid, l_uint len, \
+					l_ulong *user_mask_ptr); }
 242	AUE_NULL	STD	{ int linux_sched_getaffinity(l_pid_t pid, l_uint len, \
 					l_ulong *user_mask_ptr); }
 243	AUE_NULL	STD	{ int linux_set_thread_area(struct l_user_desc *desc); }
Index: amd64/linux32/linux32_sysent.c
===================================================================
--- amd64/linux32/linux32_sysent.c	(revision 183958)
+++ amd64/linux32/linux32_sysent.c	(working copy)
@@ -3,10 +3,9 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.29 2007/08/28 12:26:34 kib Exp 
+ * created from FreeBSD: stable/7/sys/amd64/linux32/syscalls.master 172220 2007-09-18 19:50:33Z dwmalone 
  */
 
-#include <bsm/audit_kevents.h>
 #include "opt_compat.h"
 #include <sys/param.h>
 #include <sys/sysent.h>
@@ -261,7 +260,7 @@
 	{ AS(linux_tkill_args), (sy_call_t *)linux_tkill, AUE_NULL, NULL, 0, 0 },	/* 238 = linux_tkill */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 239 = linux_sendfile64 */
 	{ AS(linux_sys_futex_args), (sy_call_t *)linux_sys_futex, AUE_NULL, NULL, 0, 0 },	/* 240 = linux_sys_futex */
-	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 241 = linux_sched_setaffinity */
+	{ AS(linux_sched_setaffinity_args), (sy_call_t *)linux_sched_setaffinity, AUE_NULL, NULL, 0, 0 },	/* 241 = linux_sched_setaffinity */
 	{ AS(linux_sched_getaffinity_args), (sy_call_t *)linux_sched_getaffinity, AUE_NULL, NULL, 0, 0 },	/* 242 = linux_sched_getaffinity */
 	{ AS(linux_set_thread_area_args), (sy_call_t *)linux_set_thread_area, AUE_NULL, NULL, 0, 0 },	/* 243 = linux_set_thread_area */
 	{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 },			/* 244 = linux_get_thread_area */
Index: amd64/linux32/linux32_proto.h
===================================================================
--- amd64/linux32/linux32_proto.h	(revision 183958)
+++ amd64/linux32/linux32_proto.h	(working copy)
@@ -3,7 +3,7 @@
  *
  * DO NOT EDIT-- this file is automatically generated.
  * $FreeBSD$
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.29 2007/08/28 12:26:34 kib Exp 
+ * created from FreeBSD: stable/7/sys/amd64/linux32/syscalls.master 172220 2007-09-18 19:50:33Z dwmalone 
  */
 
 #ifndef _LINUX_SYSPROTO_H_
@@ -11,6 +11,7 @@
 
 #include <sys/signal.h>
 #include <sys/acl.h>
+#include <sys/cpuset.h>
 #include <sys/_semaphore.h>
 #include <sys/ucontext.h>
 
@@ -734,6 +735,11 @@
 	char uaddr2_l_[PADL_(void *)]; void * uaddr2; char uaddr2_r_[PADR_(void *)];
 	char val3_l_[PADL_(int)]; int val3; char val3_r_[PADR_(int)];
 };
+struct linux_sched_setaffinity_args {
+	char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
+	char len_l_[PADL_(l_uint)]; l_uint len; char len_r_[PADR_(l_uint)];
+	char user_mask_ptr_l_[PADL_(l_ulong *)]; l_ulong * user_mask_ptr; char user_mask_ptr_r_[PADR_(l_ulong *)];
+};
 struct linux_sched_getaffinity_args {
 	char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
 	char len_l_[PADL_(l_uint)]; l_uint len; char len_r_[PADR_(l_uint)];
@@ -1105,6 +1111,7 @@
 int	linux_fremovexattr(struct thread *, struct linux_fremovexattr_args *);
 int	linux_tkill(struct thread *, struct linux_tkill_args *);
 int	linux_sys_futex(struct thread *, struct linux_sys_futex_args *);
+int	linux_sched_setaffinity(struct thread *, struct linux_sched_setaffinity_args *);
 int	linux_sched_getaffinity(struct thread *, struct linux_sched_getaffinity_args *);
 int	linux_set_thread_area(struct thread *, struct linux_set_thread_area_args *);
 int	linux_fadvise64(struct thread *, struct linux_fadvise64_args *);
@@ -1360,6 +1367,7 @@
 #define	LINUX_SYS_AUE_linux_fremovexattr	AUE_NULL
 #define	LINUX_SYS_AUE_linux_tkill	AUE_NULL
 #define	LINUX_SYS_AUE_linux_sys_futex	AUE_NULL
+#define	LINUX_SYS_AUE_linux_sched_setaffinity	AUE_NULL
 #define	LINUX_SYS_AUE_linux_sched_getaffinity	AUE_NULL
 #define	LINUX_SYS_AUE_linux_set_thread_area	AUE_NULL
 #define	LINUX_SYS_AUE_linux_fadvise64	AUE_NULL
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20081016/dd606cd8/attachment.pgp


More information about the freebsd-stable mailing list