Thread (247 messages) 247 messages, 7 authors, 2021-03-18

Re: [RFC v8 13/20] um: lkl: integrate with irq infrastructure of UML

From: Hajime Tazaki <hidden>
Date: 2021-03-16 01:21:19
Also in: linux-um


On Mon, 15 Mar 2021 05:45:23 +0900,
Johannes Berg wrote:
On Wed, 2021-01-20 at 11:27 +0900, Hajime Tazaki wrote:
quoted
 static irqreturn_t um_timer(int irq, void *dev)
 {
+#ifndef CONFIG_UMMODE_LIB
 	if (get_current()->mm != NULL)
Why is the ifdef needed - get_current()->mm should always be NULL for
LKL? Surely get_current() must still work?
What we tried to ifdef is to avoid the following call;

   os_alarm_process(get_current()->mm->context.id.u.pid);

because we didn't use/update get_current()->mm->context.id (struct
mm_id) and calling kill(0, SIGALRM) makes a program puzzled thus,
eliminate it.
quoted
 	sigemptyset(&sig_mask);
 	sigaddset(&sig_mask, sig);
-	if (sigprocmask(SIG_UNBLOCK, &sig_mask, NULL) < 0)
-		panic("sigprocmask failed - errno = %d\n", errno);
+	if (pthread_sigmask(SIG_UNBLOCK, &sig_mask, NULL) < 0)
+		panic("pthread_sigmask failed - errno = %d\n", errno);
UML doesn't normally link with libpthread, and LKL doesn't actually
appear to require it either (since it has its lkl_thread and all), so
this seems wrong?
I think both UML/LKL link with libpthread.  See old
scripts/link-vmlinux.sh, or [01/20] patch.

-		${CC} ${CFLAGS_vmlinux}				\
-			${strip_debug}				\
-			-o ${output}				\
-			-Wl,-T,${lds}				\
-			${objects}				\
-			-lutil -lrt -lpthread
-		rm -f linux

-- Hajime
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help