Le pilote PowerFlex scini (SDC) signale des erreurs d’allocation de mémoire (blkIO_HandleChecksumOnIoStart)

Summary: Les erreurs d’allocation de mémoire sont signalées dans syslog par le pilote scini (pilote SDC).

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Scénario
SDC installé sur Linux
Les volumes mappés au SDC sont alloués à partir d’un pool de stockage configuré pour utiliser la somme de contrôle.
Le système subit un manque de mémoire ou une fragmentation de la mémoire.

Symptômes
Des messages similaires à ce qui suit s’affichent généralement dans le journal syslog : /var/log/messages

Dec 12 15:36:09 server002 kernel: kworker/16:2H: page allocation failure: order:8, mode:0x104020 
Dec 12 15:36:09 server002 kernel: CPU: 16 PID: 11460 Comm: kworker/16:2H Tainted: P OE ------------ 3.10.0-514.21.1.el7.x86_64 #1 
Dec 12 15:36:09 server002 kernel: Hardware name: HP ProLiant DL560 Gen9/ProLiant DL560 Gen9, BIOS P85 01/04/2016 
Dec 12 15:36:09 server002 kernel: Workqueue: kblockd blk_delay_work 
Dec 12 15:36:09 server002 kernel: 0000000000104020 0000000054aac964 ffff886aecfd37c0 ffffffff81686e13 
Dec 12 15:36:09 server002 kernel: ffff886aecfd3850 ffffffff81187090 ffff88607ffda000 0000000000000010 
Dec 12 15:36:09 server002 kernel: ffffffffffffff00 0010402000000000 0022522000000000 0000000054aac964 
Dec 12 15:36:09 server002 kernel: Call Trace: 
Dec 12 15:36:09 server002 kernel: [<ffffffff81686e13>] dump_stack+0x19/0x1b 
Dec 12 15:36:09 server002 kernel: [<ffffffff81187090>] warn_alloc_failed+0x110/0x180 
Dec 12 15:36:09 server002 kernel: [<ffffffff816829a7>] __alloc_pages_slowpath+0x6b7/0x725 Dec 12 15:36:09 server002 kernel: [<ffffffff8118b645>] __alloc_pages_nodemask+0x405/0x420 Dec 12 15:36:09 server002 kernel: [<ffffffff811cf7fa>] alloc_pages_current+0xaa/0x170 
Dec 12 15:36:09 server002 kernel: [<ffffffff81185f6e>] __get_free_pages+0xe/0x50 
Dec 12 15:36:09 server002 kernel: [<ffffffff811db09e>] kmalloc_order_trace+0x2e/0xa0 
Dec 12 15:36:09 server002 kernel: [<ffffffff811dd871>] __kmalloc+0x221/0x240 
Dec 12 15:36:09 server002 kernel: [<ffffffff811de7c3>] ? kmem_cache_alloc+0x193/0x1e0 
Dec 12 15:36:09 server002 kernel: [<ffffffffa07b697a>] blkIO_OnChecksumIoStart+0x5a/0x550 [scini] 
Dec 12 15:36:09 server002 kernel: [<ffffffffa07ed587>] ? mosMCAllocator_Alloc+0x57/0xa0 [scini] 
Dec 12 15:36:09 server002 kernel: [<ffffffffa07b3ac1>] blkIO_HandleChecksumOnIoStart+0xc1/0x220 [scini] 
Dec 12 15:36:09 server002 kernel: [<ffffffffa07b7ea8>] mapVolIO_Do_CK+0x398/0x1e80 [scini] Dec 12 15:36:09 server002 kernel: [<ffffffffa07b4306>] blkIO_Do_CK+0x266/0xa00 [scini] 
Dec 12 15:36:09 server002 kernel: [<ffffffffa07e9838>] mosMit_EntryWrapper+0x128/0x1b0 [scini] 
Dec 12 15:36:09 server002 kernel: [<ffffffffa07e9a2c>] mosMit_StartNow+0x7c/0x90 [scini] 
Dec 12 15:36:09 server002 kernel: [<ffffffffa07b4ea6>] blkIO_Request+0x356/0x730 [scini] 
Dec 12 15:36:09 server002 kernel: [<ffffffff810cf27e>] ? dequeue_task_fair+0x41e/0x660 
Dec 12 15:36:09 server002 kernel: [<ffffffff812eb7e3>] __blk_run_queue+0x33/0x40 
Dec 12 15:36:09 server002 kernel: [<ffffffff812ed915>] blk_delay_work+0x25/0x60 
Dec 12 15:36:09 server002 kernel: [<ffffffff810a845b>] process_one_work+0x17b/0x470 
Dec 12 15:36:09 server002 kernel: [<ffffffff810a9296>] worker_thread+0x126/0x410 
Dec 12 15:36:09 server002 kernel: [<ffffffff810a9170>] ? rescuer_thread+0x460/0x460 
Dec 12 15:36:09 server002 kernel: [<ffffffff810b0a4f>] kthread+0xcf/0xe0 
Dec 12 15:36:09 server002 kernel: [<ffffffff810b0980>] ? kthread_create_on_node+0x140/0x140 Dec 12 15:36:09 server002 kernel: [<ffffffff81697418>] ret_from_fork+0x58/0x90 
Dec 12 15:36:09 server002 kernel: [<ffffffff810b0980>] ? kthread_create_on_node+0x140/0x140

Les messages commencent par : page allocation failure
La trace de la pile comprend les éléments suivants : blkIO_HandleChecksumOnIoStart

Impact
Le mécanisme de somme de contrôle interne ScaleIO peut ne pas vérifier certaines opérations d’E/S.

Remarque : Les messages TCP envoyés entre le SDC et le SDS incluent une somme de contrôle de niveau TCP, quelle que soit la somme de contrôle ajoutée par le SDC, qui est utilisée pour vérifier le contenu du message dans le cadre de la pile TCP.

 

Cause

Lorsque la fonction de somme de contrôle est activée sur un pool de stockage, les opérations d’E/S sur les volumes alloués à partir du pool de stockage sont accompagnées d’une somme de contrôle incluse avec les messages réseau entre SDC et SDS.
Pour calculer ces valeurs de somme de contrôle, le SDC alloue dynamiquement de la mémoire.
Si l’hôte souffre d’un manque de mémoire ou d’une fragmentation de la mémoire, l’allocation de mémoire requise pour l’opération de somme de contrôle peut échouer.

Lorsque l’allocation de mémoire échoue, le SDC ne peut pas calculer la somme de contrôle et ne l’attache pas au message réseau.
Lorsque le SDS reçoit un message du SDC, qui n’inclut pas de somme de contrôle, il effectue l’opération d’E/S, sans vérifier le contenu du message de son côté.

Pour conclure, les échecs d’allocation de mémoire n’ont aucun effet sur les opérations d’E/S des applications ni sur les performances de ScaleIO.

 

Resolution

Si possible, assurez-vous que l’hôte dispose de suffisamment de mémoire libre non fragmentée.

Versions
concernéesToutes les versions de ScaleIO fonctionnent comme prévu

Corrigé dans la version
N/A

 

Article Properties
Article Number: 000161109
Article Type: Solution
Last Modified: 03 Sept 2025
Version:  7
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.