Khi nào sử dụng mutex_lock_interruptible?

Mục lục:

Khi nào sử dụng mutex_lock_interruptible?
Khi nào sử dụng mutex_lock_interruptible?
Anonim

Sử dụng chức năng mutex_lock_interruptible để cho phép trình điều khiển của bạn bị gián đoạn bởi bất kỳ tín hiệu nào. Điều này ngụ ý rằng cuộc gọi hệ thống của bạn phải được viết để nó có thể được khởi động lại. (Xem thêm ERESTARTSYS.)

Tôi có thể khóa spinlock trong một CPU và mở khóa CPU khác không?

Sử dụng spinlock trên hệ thống lõi đơn / CPU đơn thường không có ý nghĩa gì, vì miễn là việc thăm dò spinlock đang chặn lõi CPU khả dụng duy nhất, thì không luồng nào khác có thể chạy và vì không luồng nào khác có thể chạy, khóa cũng không mở được.

Tôi có thể gọi cho Kmalloc Gfp_kernel khi đang cầm một spinlock không?

Tuy nhiên, bạn không thểlàm bất cứ điều gì sẽ chuyển sang chế độ ngủ khi đang giữ spinlock. Ví dụ: không bao giờ gọi bất kỳ hàm nào chạm vào bộ nhớ người dùng, kmalloc với cờ GFP_KERNEL, bất kỳ hàm semaphore nào hoặc bất kỳ hàm lịch trình nào trong khi giữ spinlock. … Semaphores trong Linux đang bị khóa.

Spinlock_t là gì?

int spin_trylock (spinlock_tlock) Khóa spinlock nếu nó chưa được khóa. Nếu không thể lấy được khóa, nó sẽ thoát ra với lỗi và không quay được khóa. spin_lock_irq: spin_lock_irq (spinlock_tlock)

kernel mutex là gì?

Trong hạt nhân Linux, mutexes đề cập đến một nguyên thủy khóa cụ thể thực thi tuần tự hóa trên hệ thống bộ nhớ dùng chungvà không chỉ thuật ngữ chung đề cập đến 'loại trừ lẫn nhau' được tìm thấy trong học thuật hoặc sách lý thuyết tương tự.

Đề xuất: