.\" -*- coding: UTF-8 -*- .\" Copyright 2006, Silicon Graphics, Inc. .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" FIXME Should programs normally be using move_pages() directly, or should .\" they rather be using interfaces in the numactl package? .\" (e.g., compare with recommendation in mbind(2)). .\" Does this page need to give advice on this topic? .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH move_pages 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم move_pages \- نقل صفحات فردية من عملية إلى عقدة أخرى .SH المكتبة مكتبة سياسات NUMA (الوصول غير الموحد للذاكرة) (\fIlibnuma\fP،\ \fI\-lnuma\fP) .SH موجز .nf \fB#include \fP .P \fBlong move_pages(int \fP\fIpid\fP\fB, unsigned long \fP\fIcount\fP\fB, void *\fP\fIpages\fP\fB[\fP\fIcount\fP\fB],\fP \fB const int \fP\fInodes\fP\fB[\fP\fIcount\fP\fB], int \fP\fIstatus\fP\fB[\fP\fIcount\fP\fB],\fP \fB int \fP\fIflags\fP\fB);\fP .fi .SH الوصف تنقل \fBmove_pages\fP() الصفحات \fIpages\fP المحددة من العملية \fIpid\fP إلى عقد الذاكرة المحددة بواسطة \fInodes\fP. تنعكس نتيجة النقل في \fIstatus\fP. تشير \fIflags\fP إلى القيود على الصفحات المراد نقلها. .P \fIpid\fP هو معرف العملية التي ستنقل فيها الصفحات. إذا كان \fIpid\fP يساوي 0، فإن \fBmove_pages\fP() تنقل صفحات العملية المستدعية. .P يتطلب نقل الصفحات في عملية أخرى الامتيازات التالية: .IP \[bu] 3 حتى Linux 4.12 وما يشملها: يجب أن يكون المستدعي متمتعًا بالامتيازات (\fBCAP_SYS_NICE\fP) أو يجب أن يتطابق معرف المستخدم الحقيقي أو الفعّال للعملية المستدعية مع معرف المستخدم الحقيقي أو المحفوظ للعملية الهدف. .IP \[bu] .\" commit 197e7e521384a23b9e585178f3f11c9fa08274b9 سمحت القواعد القديمة للمستدعي باكتشاف خيارات متنوعة للعناوين الافتراضية التي يتخذها النواة، مما قد يؤدي إلى إبطال عشوائية تخطيط مساحة العنوان لعملية مملوكة لنفس UID للمستدعي، لذلك تم تغيير القواعد بدءًا من Linux 4.13. منذ Linux 4.13، يُحكم الإذن بواسطة فحص وضع الوصول ptrace \fBPTRACE_MODE_READ_REALCREDS\fP فيما يتعلق بالعملية الهدف؛ انظر \fBptrace\fP(2). .P \fIcount\fP هو عدد الصفحات المراد نقلها. يحدد حجم المصفوفات الثلاث \fIpages\fP و\fInodes\fP و\fIstatus\fP. .P .\" FIXME Describe the result if pointers in the 'pages' array are .\" not aligned to page boundaries \fIpages\fP هو مصفوفة من المؤشرات إلى الصفحات التي يجب نقلها. هذه مؤشرات يجب أن تكون محاذية لحدود الصفحات. تُحدد العناوين كما تراها العملية المحددة بواسطة \fIpid\fP. .P \fInodes\fP هو مصفوفة من الأعداد الصحيحة التي تحدد الموقع المطلوب لكل صفحة. كل عنصر في المصفوفة هو رقم عقدة. يمكن أن يكون \fInodes\fP أيضًا NULL، وفي هذه الحالة لا تنقل \fBmove_pages\fP() أي صفحات بل ستعيد العقدة التي توجد فيها كل صفحة حاليًا، في مصفوفة \fIstatus\fP. قد يكون الحصول على حالة كل صفحة ضروريًا لتحديد الصفحات التي تحتاج إلى النقل. .P \fIstatus\fP هو مصفوفة من الأعداد الصحيحة التي تعيد حالة كل صفحة. تحتوي المصفوفة على قيم صالحة فقط إذا لم تُرجع \fBmove_pages\fP() خطأ. يمكن أن يساعد التهيئة المسبقة للمصفوفة بقيمة لا تمثل عقدة numa حقيقية أو خطأ صالح في مصفوفة الحالة في تحديد الصفحات التي تم ترحيلها. .P تحدد \fIflags\fP أنواع الصفحات المراد نقلها. يعني \fBMPOL_MF_MOVE\fP أنه سيتم نقل الصفحات التي هي قيد الاستخدام الحصري من قبل العملية فقط. يعني \fBMPOL_MF_MOVE_ALL\fP أنه يمكن أيضًا نقل الصفحات المشتركة بين عمليات متعددة. يجب أن تكون العملية متمتعة بالامتيازات (\fBCAP_SYS_NICE\fP) لاستخدام \fBMPOL_MF_MOVE_ALL\fP. .SS "حالات الصفحات في مصفوفة الحالة" يمكن إرجاع القيم التالية في كل عنصر من مصفوفة \fIstatus\fP. .TP \fB0..MAX_NUMNODES\fP يحدد العقدة التي توجد عليها الصفحة. .TP \fB\-EACCES\fP الصفحة معمّلة بواسطة عمليات متعددة ويمكن نقلها فقط إذا تم تحديد \fBMPOL_MF_MOVE_ALL\fP. .TP \fB\-EBUSY\fP الصفحة مشغولة حاليًا ولا يمكن نقلها. حاول مرة أخرى لاحقًا. يحدث هذا إذا كانت الصفحة تخضع للإدخال/الإخراج أو إذا كان نظام فرعي آخر من النواة يحمل مرجعًا للصفحة. .TP \fB\-EFAULT\fP هذه صفحة صفرية أو منطقة الذاكرة غير معمّلة من قبل العملية. .TP \fB\-EIO\fP تعذرت إعادة كتابة صفحة. يجب إعادة كتابة الصفحة لنقلها لأن الصفحة متسخة ولا يوفر نظام الملفات وظيفة ترحيل تسمح بنقل الصفحات المتسخة. .TP \fB\-EINVAL\fP لا يمكن نقل صفحة متسخة. لا يوفر نظام الملفات وظيفة ترحيل وليس لديه القدرة على إعادة كتابة الصفحات. .TP \fB\-ENOENT\fP الصفحة غير موجودة. .TP \fB\-ENOMEM\fP تعذر تخصيص ذاكرة على العقدة الهدف. .SH "قيمة الإرجاع" .\" FIXME . Is the following quite true: does the wrapper in numactl .\" do the right thing? عند النجاح، تُرجع \fBmove_pages\fP() صفرًا. عند الخطأ، تُرجع \-1، وتضبط \fIerrno\fP للإشارة إلى الخطأ. إذا تم إرجاع قيمة موجبة، فهي عدد الصفحات غير المرحّلة. .SH الأخطاء .TP \fBقيمة موجبة\fP .\" commit a49bd4d7163707de377aee062f17befef6da891b عدد الصفحات غير المرحّلة إذا كانت نتيجة لأسباب غير قاتلة (منذ Linux 4.17). .TP \fBE2BIG\fP .\" commit 3140a2273009c01c27d316f35ab76a37e105fdd8 عدد كبير جدًا من الصفحات لنقلها. منذ لينكس 2.6.29، لم يعد النواة تولّد هذا الخطأ. .TP \fBEACCES\fP .\" FIXME Clarify "current cpuset" in the description of the EACCES error. .\" Is that the cpuset of the caller or the target? إحدى العقد الهدف غير مسموح بها بواسطة مجموعة وحدة المعالجة المركزية الحالية. .TP \fBEFAULT\fP تعذر الوصول إلى مصفوفة المعاملات. .TP \fBEINVAL\fP تم تحديد أعلام غير \fBMPOL_MF_MOVE\fP و \fBMPOL_MF_MOVE_ALL\fP أو جرت محاولة لترحيل صفحات من خيط نواة. .TP \fBENODEV\fP إحدى العقد الهدف غير متصلة بالإنترنت. .TP \fBEPERM\fP حدد المتصل \fBMPOL_MF_MOVE_ALL\fP دون صلاحيات كافية (\fBCAP_SYS_NICE\fP). أو، حاول المتصل نقل صفحات من عملية تابعة لمستخدم آخر لكنه لم يملك صلاحية فعل ذلك (\fBCAP_SYS_NICE\fP). .TP \fBESRCH\fP العملية غير موجودة. .SH المعايير لينكس. .SH التاريخ لينكس 2.6.18. .SH ملاحظات للحصول على معلومات حول دعم المكتبات، انظر \fBnuma\fP(7). .P .\" FIXME Clarify "current cpuset". Is that the cpuset of the caller .\" or the target? استخدم \fBget_mempolicy\fP(2) مع العلم \fBMPOL_F_MEMS_ALLOWED\fP للحصول على مجموعة العقد المسموح بها بواسطة مجموعة وحدة المعالجة المركزية الحالية. لاحظ أن هذه المعلومات قابلة للتغيير في أي وقت عن طريق إعادة تشكيل يدوي أو آلي لمجموعة وحدة المعالجة المركزية. .P قد يؤدي استخدام هذه الدالة إلى صفحات ينتهك موقعها (العقدة) سياسة الذاكرة المقررة للعناوين المحددة (انظر \fBmbind\fP(2)) و/أو العملية المحددة (انظر \fBset_mempolicy\fP(2)). أي أن سياسة الذاكرة لا تقيد العقد الوجهة المستخدمة بواسطة \fBmove_pages\fP(). .P ترويسة \fI\fP غير مضمنة في glibc، ولكنها تتطلب تثبيت \fIlibnuma\-devel\fP أو حزمة مماثلة. .SH "انظر أيضًا" \fBget_mempolicy\fP(2)، و\fBmbind\fP(2)، و\fBset_mempolicy\fP(2)، و\fBnuma\fP(3)، و\fBnuma_maps\fP(5)، و\fBcpuset\fP(7)، و\fBnuma\fP(7)، و\fBmigratepages\fP(8)، و\fBnumastat\fP(8) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .