Je pense que c'est fonction sert à désactiver le swap dans son ensemble : c'est tout ou rien, mais pas pour supprimer juste un fichier de swap.
Et tu mets quoi comme argument? /* * Routine: macx_swapoff * Function: * Syscall interface to remove a file from backing store */ int macx_swapoff( char *filename, int flags)
macx_swapoff ne sert pas à désactiver le swap, mais à supprimer de la gestion du swap un fichier devenu inutile. filename est le nom du fichier à supprimer, et flags n'est pas utilisé (c'est normalement le drapeau venant d'une notification Mach).
macx_swapoff convertit le nom du fichier en inode (vnode en fait) et vérifie qu'il est bien utilisé par le swap (mémorisé dans le "backing store"). La ligne 331 du fichier que tu donnes est, entre parenthèse, une erreur. Le gros du travail qui correspond à la séparation du lien entre la gestion de la mémoire virtuelle et les pages stockées dans le fichier est effectué par la fonction default_pager_backing_store_delete. Si l'on demande la suppression d'un fichier en cours d'utilisation, la fonction macx_swapoff devrait retourner EAGAIN (ligne 359). Mais cette suppression du fichier de swap correspond à la suppression de la gestion de ce fichier par le noyau Mach, pas à l'effacement de son nom dans le système de fichier (un "rm" est toujours possible).
Si on regarde dans le source de dynamic_pager, on voit que ce programme peut recevoir du noyau des notifications. Et sur le Low Water Alert, il appelle macx_swapoff pour libérer le fichier swap de la gestion de la mémoire virtuelle, puis effectue le unlink du fichier, ce qui va effacer son nom dans le système de fichiers et supprimer les blocs disques alloués.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Le 6/06/04 17:52, dans <slrncc6feo.ijf.said@brian.lan>, « Saïd »
<said@brian.lan> a écrit :
Schmurtz :
Je pense que c'est fonction sert à désactiver le swap dans son ensemble
: c'est tout ou rien, mais pas pour supprimer juste un fichier de swap.
Et tu mets quoi comme argument?
/*
* Routine: macx_swapoff
* Function:
* Syscall interface to remove a file from backing store
*/
int
macx_swapoff(
char *filename,
int flags)
macx_swapoff ne sert pas à désactiver le swap, mais à supprimer de la
gestion du swap un fichier devenu inutile. filename est le nom du fichier à
supprimer, et flags n'est pas utilisé (c'est normalement le drapeau venant
d'une notification Mach).
macx_swapoff convertit le nom du fichier en inode (vnode en fait) et vérifie
qu'il est bien utilisé par le swap (mémorisé dans le "backing store"). La
ligne 331 du fichier que tu donnes est, entre parenthèse, une erreur. Le
gros du travail qui correspond à la séparation du lien entre la gestion de
la mémoire virtuelle et les pages stockées dans le fichier est effectué par
la fonction default_pager_backing_store_delete. Si l'on demande la
suppression d'un fichier en cours d'utilisation, la fonction macx_swapoff
devrait retourner EAGAIN (ligne 359). Mais cette suppression du fichier de
swap correspond à la suppression de la gestion de ce fichier par le noyau
Mach, pas à l'effacement de son nom dans le système de fichier (un "rm" est
toujours possible).
Si on regarde dans le source de dynamic_pager, on voit que ce programme peut
recevoir du noyau des notifications. Et sur le Low Water Alert, il appelle
macx_swapoff pour libérer le fichier swap de la gestion de la mémoire
virtuelle, puis effectue le unlink du fichier, ce qui va effacer son nom
dans le système de fichiers et supprimer les blocs disques alloués.
--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
Je pense que c'est fonction sert à désactiver le swap dans son ensemble : c'est tout ou rien, mais pas pour supprimer juste un fichier de swap.
Et tu mets quoi comme argument? /* * Routine: macx_swapoff * Function: * Syscall interface to remove a file from backing store */ int macx_swapoff( char *filename, int flags)
macx_swapoff ne sert pas à désactiver le swap, mais à supprimer de la gestion du swap un fichier devenu inutile. filename est le nom du fichier à supprimer, et flags n'est pas utilisé (c'est normalement le drapeau venant d'une notification Mach).
macx_swapoff convertit le nom du fichier en inode (vnode en fait) et vérifie qu'il est bien utilisé par le swap (mémorisé dans le "backing store"). La ligne 331 du fichier que tu donnes est, entre parenthèse, une erreur. Le gros du travail qui correspond à la séparation du lien entre la gestion de la mémoire virtuelle et les pages stockées dans le fichier est effectué par la fonction default_pager_backing_store_delete. Si l'on demande la suppression d'un fichier en cours d'utilisation, la fonction macx_swapoff devrait retourner EAGAIN (ligne 359). Mais cette suppression du fichier de swap correspond à la suppression de la gestion de ce fichier par le noyau Mach, pas à l'effacement de son nom dans le système de fichier (un "rm" est toujours possible).
Si on regarde dans le source de dynamic_pager, on voit que ce programme peut recevoir du noyau des notifications. Et sur le Low Water Alert, il appelle macx_swapoff pour libérer le fichier swap de la gestion de la mémoire virtuelle, puis effectue le unlink du fichier, ce qui va effacer son nom dans le système de fichiers et supprimer les blocs disques alloués.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Eric Lévénez
Le 6/06/04 16:34, dans , « Saïd » a écrit :
Puis-je ecrire un programme en C qui appelle la fonction macx_swapoff avec comme arguement le nom d'un fichier /var/vm/swapfile0 (ou 1 2 ...) sans prendre aucune autres precaution? Ce sera quoi le resultat?
EAGAIN je suppose.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Le 6/06/04 16:34, dans <slrncc6asd.igm.said@brian.lan>, « Saïd »
<said@brian.lan> a écrit :
Puis-je ecrire un programme en C qui appelle la fonction macx_swapoff avec
comme arguement le nom d'un fichier /var/vm/swapfile0 (ou 1 2 ...) sans
prendre aucune autres precaution? Ce sera quoi le resultat?
EAGAIN je suppose.
--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
Puis-je ecrire un programme en C qui appelle la fonction macx_swapoff avec comme arguement le nom d'un fichier /var/vm/swapfile0 (ou 1 2 ...) sans prendre aucune autres precaution? Ce sera quoi le resultat?
EAGAIN je suppose.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Schmurtz
Eric Lévénez wrote:
macx_swapoff ne sert pas à désactiver le swap, mais à supprimer de la gestion du swap un fichier devenu inutile. filename est le nom du fichier à supprimer, et flags n'est pas utilisé (c'est normalement le drapeau venant d'une notification Mach).
[]
Voilà une réponse claire et précise.
-- Schmurtz
Eric Lévénez wrote:
macx_swapoff ne sert pas à désactiver le swap, mais à supprimer de la
gestion du swap un fichier devenu inutile. filename est le nom du fichier à
supprimer, et flags n'est pas utilisé (c'est normalement le drapeau venant
d'une notification Mach).
macx_swapoff ne sert pas à désactiver le swap, mais à supprimer de la gestion du swap un fichier devenu inutile. filename est le nom du fichier à supprimer, et flags n'est pas utilisé (c'est normalement le drapeau venant d'une notification Mach).
[]
Voilà une réponse claire et précise.
-- Schmurtz
nospam
Saïd wrote:
Ah oui, effectivement. On peut supprimer un fichier de swap encore utilise?
Hum... d'après toi, que ce passe t'il si tu enlève sa béquille à un infirme ?
Jacques
Saïd <said@brian.lan> wrote:
Ah oui, effectivement. On peut supprimer un fichier de swap encore utilise?
Hum... d'après toi, que ce passe t'il si tu enlève sa béquille à un
infirme ?
Ah oui, effectivement. On peut supprimer un fichier de swap encore utilise?
Hum... d'après toi, que ce passe t'il si tu enlève sa béquille à un infirme ?
Essaye un peu pour voir ... :-)))
-- PO.
Pour m'écrire : po(point)taubaty(arobase)wanadoo(point)fr
Nicolas.MICHEL
gp wrote:
et quand t'as plus de RAM libre il se passe quoi ?
je ne sais pas, je n'ai encore jamais bourré les 384Mb de ram...
Y a-t-il des spécialistes de la questions ?
Pas spécialiste, mais j'ai testé la commande de Saïd qui ne créait pas de fichiers de swap, lorsque je saturais la ram il falait ensuite faire un hard reboot. Le disque gratait ad eternum et tout était figé.
-- S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes iChat/AIM : michelnicolas
gp <gpiroux@mac.com> wrote:
et quand t'as plus de RAM libre il se passe quoi ?
je ne sais pas, je n'ai encore jamais bourré les 384Mb de ram...
Y a-t-il des spécialistes de la questions ?
Pas spécialiste, mais j'ai testé la commande de Saïd qui ne créait pas
de fichiers de swap, lorsque je saturais la ram il falait ensuite faire
un hard reboot. Le disque gratait ad eternum et tout était figé.
--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas
et quand t'as plus de RAM libre il se passe quoi ?
je ne sais pas, je n'ai encore jamais bourré les 384Mb de ram...
Y a-t-il des spécialistes de la questions ?
Pas spécialiste, mais j'ai testé la commande de Saïd qui ne créait pas de fichiers de swap, lorsque je saturais la ram il falait ensuite faire un hard reboot. Le disque gratait ad eternum et tout était figé.
-- S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes iChat/AIM : michelnicolas
Saïd
Nicolas MICHEL :
gp wrote:
et quand t'as plus de RAM libre il se passe quoi ?
je ne sais pas, je n'ai encore jamais bourré les 384Mb de ram...
Y a-t-il des spécialistes de la questions ?
Pas spécialiste, mais j'ai testé la commande de Saïd qui ne créait pas de fichiers de swap, lorsque je saturais la ram il falait ensuite faire un hard reboot. Le disque gratait ad eternum et tout était figé.
(les nombres sont 100 millions 10 millions et 200millions)
Comment l'as tu lance exactement? En modifiant /etc/rc et en rebootant ou directement depuis le terminal?
Cette commande ne cause pas de non creation de fichiers swaps comme tu dis. Normalement les fichiers de swap doivent avoir une taille fixe (100Mo), un nouveau fichier est cree des qu'il reste moins de 10Mo a la fin du fichier swap et des fichier swap sont liberes des que la somme de la taille des trous dans le swap depasse 200Mo. Cette derniere operation pouvant etre assez longue.
-- Saïd.
Nicolas MICHEL :
gp <gpiroux@mac.com> wrote:
et quand t'as plus de RAM libre il se passe quoi ?
je ne sais pas, je n'ai encore jamais bourré les 384Mb de ram...
Y a-t-il des spécialistes de la questions ?
Pas spécialiste, mais j'ai testé la commande de Saïd qui ne créait pas
de fichiers de swap, lorsque je saturais la ram il falait ensuite faire
un hard reboot. Le disque gratait ad eternum et tout était figé.
(les nombres sont 100 millions 10 millions et 200millions)
Comment l'as tu lance exactement? En modifiant /etc/rc et en rebootant ou
directement depuis le terminal?
Cette commande ne cause pas de non creation de fichiers swaps comme tu dis.
Normalement les fichiers de swap doivent avoir une taille fixe (100Mo), un
nouveau fichier est cree des qu'il reste moins de 10Mo a la fin du fichier
swap et des fichier swap sont liberes des que la somme de la taille des
trous dans le swap depasse 200Mo. Cette derniere operation pouvant etre
assez longue.
et quand t'as plus de RAM libre il se passe quoi ?
je ne sais pas, je n'ai encore jamais bourré les 384Mb de ram...
Y a-t-il des spécialistes de la questions ?
Pas spécialiste, mais j'ai testé la commande de Saïd qui ne créait pas de fichiers de swap, lorsque je saturais la ram il falait ensuite faire un hard reboot. Le disque gratait ad eternum et tout était figé.
(les nombres sont 100 millions 10 millions et 200millions)
Comment l'as tu lance exactement? En modifiant /etc/rc et en rebootant ou directement depuis le terminal?
Cette commande ne cause pas de non creation de fichiers swaps comme tu dis. Normalement les fichiers de swap doivent avoir une taille fixe (100Mo), un nouveau fichier est cree des qu'il reste moins de 10Mo a la fin du fichier swap et des fichier swap sont liberes des que la somme de la taille des trous dans le swap depasse 200Mo. Cette derniere operation pouvant etre assez longue.
-- Saïd.
Saïd
Saïd :
Nicolas MICHEL :
gp wrote:
et quand t'as plus de RAM libre il se passe quoi ?
je ne sais pas, je n'ai encore jamais bourré les 384Mb de ram...
Y a-t-il des spécialistes de la questions ?
Pas spécialiste, mais j'ai testé la commande de Saïd qui ne créait pas de fichiers de swap, lorsque je saturais la ram il falait ensuite faire un hard reboot. Le disque gratait ad eternum et tout était figé.
Je viens de rebooter avec cette ligne (enfin presque, j'ai mis 64Mo, 16Mo, e 128+16Mo +2 octets pour etre sur de librer deux fichiers swap a chaque fois que le menage est fait) dans /etc/rc.
mes fichiers swaps ne font plus que 64Mo. j'ai lance un programme qui ecrit 900Mo de memoire, le swap est bien monte et est redescendu progressivement. et la je n'ai plus que deux fichiers de swap (soit 128Mo). Bref, j'ai bien sature la memoire et je n'ai rien eu de facheux a deplorer.
Je ferai un commentaire a l'usage de cette config, pour l'instant on ne peut pas dire grand chose a part que ca ne plante pas la machine.
-- Saïd.
Saïd :
Nicolas MICHEL :
gp <gpiroux@mac.com> wrote:
et quand t'as plus de RAM libre il se passe quoi ?
je ne sais pas, je n'ai encore jamais bourré les 384Mb de ram...
Y a-t-il des spécialistes de la questions ?
Pas spécialiste, mais j'ai testé la commande de Saïd qui ne créait pas
de fichiers de swap, lorsque je saturais la ram il falait ensuite faire
un hard reboot. Le disque gratait ad eternum et tout était figé.
Je viens de rebooter avec cette ligne (enfin presque, j'ai mis 64Mo, 16Mo,
e 128+16Mo +2 octets pour etre sur de librer deux fichiers swap a chaque
fois que le menage est fait) dans /etc/rc.
mes fichiers swaps ne font plus que 64Mo. j'ai lance un programme qui ecrit
900Mo de memoire, le swap est bien monte et est redescendu progressivement.
et la je n'ai plus que deux fichiers de swap (soit 128Mo). Bref, j'ai bien
sature la memoire et je n'ai rien eu de facheux a deplorer.
Je ferai un commentaire a l'usage de cette config, pour l'instant on ne
peut pas dire grand chose a part que ca ne plante pas la machine.
et quand t'as plus de RAM libre il se passe quoi ?
je ne sais pas, je n'ai encore jamais bourré les 384Mb de ram...
Y a-t-il des spécialistes de la questions ?
Pas spécialiste, mais j'ai testé la commande de Saïd qui ne créait pas de fichiers de swap, lorsque je saturais la ram il falait ensuite faire un hard reboot. Le disque gratait ad eternum et tout était figé.
Je viens de rebooter avec cette ligne (enfin presque, j'ai mis 64Mo, 16Mo, e 128+16Mo +2 octets pour etre sur de librer deux fichiers swap a chaque fois que le menage est fait) dans /etc/rc.
mes fichiers swaps ne font plus que 64Mo. j'ai lance un programme qui ecrit 900Mo de memoire, le swap est bien monte et est redescendu progressivement. et la je n'ai plus que deux fichiers de swap (soit 128Mo). Bref, j'ai bien sature la memoire et je n'ai rien eu de facheux a deplorer.
Je ferai un commentaire a l'usage de cette config, pour l'instant on ne peut pas dire grand chose a part que ca ne plante pas la machine.