Re: [PATCH v4 04/29] nios2: Exception handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> +Lsignal_return:
> +	ANDI32	r1, r10, _TIF_SIGPENDING | _TIF_NOTIFY_RESUME
> +	beq	r1, r0, restore_all
> +	mov	r4, sp			/* pt_regs */
> +	SAVE_SWITCH_STACK
> +	call	do_notify_resume
> +	beq	r2, r0, no_work_pending
> +	RESTORE_SWITCH_STACK
> +	/* prepare restart syscall here without leaving kernel */
> +	ldw	r2, PT_R2(sp)	/* reload syscall number in r2 */
> +	ldw 	r4, PT_R4(sp)	/* reload syscall arguments r4-r9 */
> +	ldw 	r5, PT_R5(sp)
> +	ldw 	r6, PT_R6(sp)
> +	ldw 	r7, PT_R7(sp)
> +	ldw 	r8, PT_R8(sp)
> +	ldw 	r9, PT_R9(sp)
> +	br	local_restart	/* restart syscall */
> +
> +no_work_pending:
> +	RESTORE_SWITCH_STACK
> +	br	restore_all

Umm...  Branch to no_work_pending will be usuall taken.  How well does
branch predictor on that processor cope with such things?

Another thing is the point Richard made - multiple pending signals need to be
handled.  IOW, that should be a branch to ret_from_exception, not restore_all.
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux