Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: chyba suspendu na disk  (Přečteno 3843 krát)

TUX IN MACHINE

  • Stálý člen
  • **
  • Příspěvků: 576
Re:chyba suspendu na disk
« Odpověď #25 kdy: 05 Listopadu 2011, 14:18:39 »
tu chybou hlasku s alokaci se hodil do guglu a podle vysledku mi to prijde jestli nahodou ubuntu nema default nejakou ochranu a ze jakmile nakej proces chce sezrat vic jak 2GB pameti tak mu to zamitne, neni to mozne?

https://www.google.com/#q=terminate+called+after+throwing+an+instance+of+'std::bad_alloc'+++what():++std::bad_alloc&hl=cs&prmd=imvns&source=lnt&tbs=lr:lang_1cs&lr=lang_cs&sa=X&ei=Jza1TqqQFoXHtAaL6s3SAw&sqi=2&ved=0CAcQpwUoAQ&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=137b1b0302e5e5ae&biw=1366&bih=682

TUX IN MACHINE

  • Stálý člen
  • **
  • Příspěvků: 576
Re:chyba suspendu na disk
« Odpověď #26 kdy: 05 Listopadu 2011, 14:22:43 »
jo konci na amd64. napada me kdyz mam procak intel nemam mit verzi pro intel?

daysleeper

  • Stálý člen
  • **
  • Příspěvků: 1206
Re:chyba suspendu na disk
« Odpověď #27 kdy: 05 Listopadu 2011, 14:25:03 »
on je rozdil, jestli pamet alokujes postupne a zahazujes pointery, nebo jestli ji alokujes najednou?
Ty někde v tom kódu vidíš "zahazování" pointerů? Respektive, jaký je v tom rozdíl?
« Poslední změna: 05 Listopadu 2011, 14:28:53 od daysleeper »

Šuohob

  • Závislák
  • ***
  • Příspěvků: 2171
Re:chyba suspendu na disk
« Odpověď #28 kdy: 05 Listopadu 2011, 14:40:00 »
jo konci na amd64. napada me kdyz mam procak intel nemam mit verzi pro intel?

je to jedno, amd64 podporuje jak amd, tak intel. intel pro to ma svuj nazev, ale jedna se o to same

on je rozdil, jestli pamet alokujes postupne a zahazujes pointery, nebo jestli ji alokujes najednou?
Ty někde v tom kódu vidíš "zahazování" pointerů? Respektive, jaký je v tom rozdíl?

Kód: [Vybrat]
while((buffer=malloc(1024*1024)) != NULL && mb != max)ukazatel buffer dostane adresu prave naalokovane pameti a v zapeti se pamet naalokuje znova a ta adresa, na kterou ukazoval pred chvili ukazatel buffer se prepise na jinou
Tak dlouho se vrzá s Acerem, až se displej utrhne.

daysleeper

  • Stálý člen
  • **
  • Příspěvků: 1206
Re:chyba suspendu na disk
« Odpověď #29 kdy: 05 Listopadu 2011, 14:46:28 »
OK, ale rozdíl v tom snad je.

1. Každý systém má nějaký strop na velikost pole.
2. Je jednodušší alokovat x menších souvislých bloků než jeden větší.

Šuohob

  • Závislák
  • ***
  • Příspěvků: 2171
Re:chyba suspendu na disk
« Odpověď #30 kdy: 05 Listopadu 2011, 15:42:14 »
Takze zde je puvodni program po mirne uprave, alokuje pamet postupne. Kompiluje a pouziva se stejne jako predchozi


Kód: [Vybrat]
//      writeToSwap.cxx
//     



#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
using namespace std;

int main(int argc, char **argv)
{
if (argc<2){
cout << "Pouziti: ./writeToSwap pocetMegabytu, kde pocetMegabytu je cislo dle uvazeni" << endl;
return 0;
}

int size=(atoi (argv[1]))/(sizeof (char)), i;
char * dummy;
char ch;


for (i=0;i<size;i++){
dummy=new char [1024*1024];

if (dummy){
cout << i << ": alokuji 1MB " << endl;
}else{
cout << "alokace se nezdarila" << endl;
return 1;
}

memset (dummy,'0',1024*1024);
}



cout << "Pro ukonceni stisknete enter" << endl;
ch=getchar ();

delete [] dummy;
return 0;
}
Tak dlouho se vrzá s Acerem, až se displej utrhne.

sabraq

  • Závislák
  • ***
  • Příspěvků: 3412
  • Bootloader-není téma k hovoru,ani zbytný prostor
Re:chyba suspendu na disk
« Odpověď #31 kdy: 05 Listopadu 2011, 15:46:04 »
Takze zde je puvodni program po mirne uprave, alokuje pamet postupne. Kompiluje a pouziva se stejne jako predchozi


Kód: [Vybrat]
//      writeToSwap.cxx
//     



#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
using namespace std;

int main(int argc, char **argv)
{
if (argc<2){
cout << "Pouziti: ./writeToSwap pocetMegabytu, kde pocetMegabytu je cislo dle uvazeni" << endl;
return 0;
}

int size=(atoi (argv[1]))/(sizeof (char)), i;
char * dummy;
char ch;


for (i=0;i<size;i++){
dummy=new char [1024*1024];

if (dummy){
cout << i << ": alokuji 1MB " << endl;
}else{
cout << "alokace se nezdarila" << endl;
return 1;
}

memset (dummy,'0',1024*1024);
}



cout << "Pro ukonceni stisknete enter" << endl;
ch=getchar ();

delete [] dummy;
return 0;
}

Ano, takhle to už jde...
PP v kolečku - není licence,pouze upozornění na reklamu
"Dress code" - oblečení podle předpisu(ne kódované oblečení)
CC v kolečku - je licence,značí,že se někdo nesmírně snaží

TUX IN MACHINE

  • Stálý člen
  • **
  • Příspěvků: 576
Re:chyba suspendu na disk
« Odpověď #32 kdy: 05 Listopadu 2011, 15:51:19 »
tak sem pokusoval - tohle jsou tedy vysledky pri pouziti programku verze 1.
spustil sem jeden , naalokovanejch 2g ram pricemz ve swapu bylo jen par mega to se uspalo na disk v pohode i probralo ale jak sem to zkusil pridat v druhem terminalu dalsi 1gb tak uz to pri uspani vypsalo hlasku ze nema dost swapu (viz video) nacez se to vratilo zpatky do logovaci obrazovky kde bylo vse spusteno jako predtim. ale od te doby mi na ntb neustale svitila a to i po restary ledka na uspavani a zacalo to fungovat normalne az kdyz sem dal znova uplne vypnout a cistej start systemu. jo a i kdyz sem po probuzeni oba procesy co zraly celkem 3gb ram ukoncil a byl dostatek ram asi stejne jako po cistem startu systemu tak linux byl evidentne nakej nakoplej protoze jak sem zkusil dat uspat tak to zustalo viset na cerne obrazovce, obcas probliknul hdd ale neslo se dostat do konzole, neslo ctrl+alt+del / backspace proste nic jedina moznost byla buk natvrdo vypnout.

screenshoty + video na http://poslisoubor.cz/stahni/b70bee2169aeffb8e08cc0f49dd4026f

ps: po 24hod se to automaticky smaze

Šuohob

  • Závislák
  • ***
  • Příspěvků: 2171
Re:chyba suspendu na disk
« Odpověď #33 kdy: 05 Listopadu 2011, 15:55:49 »
Takze zde je puvodni program po mirne uprave, alokuje pamet postupne. Kompiluje a pouziva se stejne jako predchozi


Kód: [Vybrat]
//      writeToSwap.cxx
//     



#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
using namespace std;

int main(int argc, char **argv)
{
if (argc<2){
cout << "Pouziti: ./writeToSwap pocetMegabytu, kde pocetMegabytu je cislo dle uvazeni" << endl;
return 0;
}

int size=(atoi (argv[1]))/(sizeof (char)), i;
char * dummy;
char ch;


for (i=0;i<size;i++){
dummy=new char [1024*1024];

if (dummy){
cout << i << ": alokuji 1MB " << endl;
}else{
cout << "alokace se nezdarila" << endl;
return 1;
}

memset (dummy,'0',1024*1024);
}



cout << "Pro ukonceni stisknete enter" << endl;
ch=getchar ();

delete [] dummy;
return 0;
}

Ano, takhle to už jde...

suspend ti jde v pohode, nebo je to neco podobneho, jako mam ja v prvnim prispevku, pripadne  jako ma TUX IN MACHINE?
Tak dlouho se vrzá s Acerem, až se displej utrhne.

TUX IN MACHINE

  • Stálý člen
  • **
  • Příspěvků: 576
Re:chyba suspendu na disk
« Odpověď #34 kdy: 05 Listopadu 2011, 16:15:53 »
tak ted sem zkusil te suspendtoswap 2 verzi nejdriv naalokoval 1gb to se uspalo v poradku a pak zkusil 3gb , to uz si poradne swaplo nacez se hibernace nezdarila
http://poslisoubor.cz/gf.php?b70bee2169aeffb8e08cc0f49dd4026f/swabB1.png
http://poslisoubor.cz/gf.php?b70bee2169aeffb8e08cc0f49dd4026f/swapB2.1.png

Šuohob

  • Závislák
  • ***
  • Příspěvků: 2171
Re:chyba suspendu na disk
« Odpověď #35 kdy: 05 Listopadu 2011, 16:46:21 »
tak ted sem zkusil te suspendtoswap 2 verzi nejdriv naalokoval 1gb to se uspalo v poradku a pak zkusil 3gb , to uz si poradne swaplo nacez se hibernace nezdarila
http://poslisoubor.cz/gf.php?b70bee2169aeffb8e08cc0f49dd4026f/swabB1.png
http://poslisoubor.cz/gf.php?b70bee2169aeffb8e08cc0f49dd4026f/swapB2.1.png

Presne o ten druhy screen mi jde. Dejme tomu, ze ti system zere pri normalni cinnosti (nebo po startu) cca 600 MB.
System vidi 3,7GB pameti a dalsi 4GB swapu. Naalokujes 3GB (cili mas plnou RAM), takze system si odswapne jen par (desitek) mega a i kdyz je swap v podstate prazdny, tak notes nejde korektne uspat.

Cili otazka zni: Mam hlasit bug, nebo se to da nejak (jak?) rucne opravit?


EDIT: sabraqovi, daysleeperovi a TUX IN MACHINE dekuji za spolupraci, davam K++
Tak dlouho se vrzá s Acerem, až se displej utrhne.

sabraq

  • Závislák
  • ***
  • Příspěvků: 3412
  • Bootloader-není téma k hovoru,ani zbytný prostor
Re:chyba suspendu na disk
« Odpověď #36 kdy: 05 Listopadu 2011, 22:15:16 »
tak ted sem zkusil te suspendtoswap 2 verzi nejdriv naalokoval 1gb to se uspalo v poradku a pak zkusil 3gb , to uz si poradne swaplo nacez se hibernace nezdarila
http://poslisoubor.cz/gf.php?b70bee2169aeffb8e08cc0f49dd4026f/swabB1.png
http://poslisoubor.cz/gf.php?b70bee2169aeffb8e08cc0f49dd4026f/swapB2.1.png

Presne o ten druhy screen mi jde. Dejme tomu, ze ti system zere pri normalni cinnosti (nebo po startu) cca 600 MB.
System vidi 3,7GB pameti a dalsi 4GB swapu. Naalokujes 3GB (cili mas plnou RAM), takze system si odswapne jen par (desitek) mega a i kdyz je swap v podstate prazdny, tak notes nejde korektne uspat.

Cili otazka zni: Mam hlasit bug, nebo se to da nejak (jak?) rucne opravit?


EDIT: sabraqovi, daysleeperovi a TUX IN MACHINE dekuji za spolupraci, davam K++
Trochu opožděně - suspend funguje, zaplnil jsem paměť na 3.7GB, uspal do paměti - to proběhlo. Po probuzení jsem měl stále zaplněno 3.7 GB a nezatuhl ani FF se spuštěným klipem na youtube. Tobě jde ale spíš o hibernaci na disk, z důvodu úspory energie. Ta mi neproběhne, PM: Not enough free swap, nebo tak nějak..
PP v kolečku - není licence,pouze upozornění na reklamu
"Dress code" - oblečení podle předpisu(ne kódované oblečení)
CC v kolečku - je licence,značí,že se někdo nesmírně snaží

Šuohob

  • Závislák
  • ***
  • Příspěvků: 2171
Re:chyba suspendu na disk
« Odpověď #37 kdy: 05 Listopadu 2011, 22:22:52 »
Me not enough free swap v zivote nevypsalo, protoze jsem nikdy swap moc nezaplnil. Udelals to jako TUX IN MACHINE, tj ze ti system odswapnul jen par mega a pak zkusil suspend to disk?
Tak dlouho se vrzá s Acerem, až se displej utrhne.

sabraq

  • Závislák
  • ***
  • Příspěvků: 3412
  • Bootloader-není téma k hovoru,ani zbytný prostor
Re:chyba suspendu na disk
« Odpověď #38 kdy: 05 Listopadu 2011, 22:32:41 »
No mě to napsalo, protože mám stále swap jen ty 2GB. Ale teď jsem zkusil uspat na disk se standardně zaplněnou pamětí, t.j. nějakých 550 MB, pc hibernoval, ale po zapnutí neproběhlo probuzení, nýbrž  běžné "zapnutí". Takže mám asi někde něco rozbitý, možná v tom má trošičku prsty čipset nforce, ale na desktopu spíš využívám suspend to ram, takže jsem si toho nikdy nevšiml.
PP v kolečku - není licence,pouze upozornění na reklamu
"Dress code" - oblečení podle předpisu(ne kódované oblečení)
CC v kolečku - je licence,značí,že se někdo nesmírně snaží

TUX IN MACHINE

  • Stálý člen
  • **
  • Příspěvků: 576
Re:chyba suspendu na disk
« Odpověď #39 kdy: 05 Listopadu 2011, 23:22:17 »
Jo tak to mi taky nekdy dela, ze po hibernaci to nastartuje jako bych ho zapnul bez predchozi hibernace, cili nejak to asi vyfailujepri nacteni puvodniho stavu. Logy sem nezkoumal. JInak jak mi to pise PM: Not enough free swap jeste zkusim uvolnit misto na disku, pripadne i zvetsit swap.

Nevite nekdo jestli si system dopredu rezervuje celej swap? .. i kdyz vlastne ten je v jinem oddilu cili by nemelo vadit ani zaplneni systemoveho oddilu .. ale ted jde o to kam si fyzicky linux odklada obsah pameti, pri uspani na disk = hibernaci. Jestli je to vsechno do swapu nebo to je oddelene jako  u windows? Ty to maji pagefile.sys = swap a hiberfil.sys jako uloziste obsahu ramky, pokud si to dobre pamatuju.

TUX IN MACHINE

  • Stálý člen
  • **
  • Příspěvků: 576
Re:chyba suspendu na disk
« Odpověď #40 kdy: 05 Listopadu 2011, 23:26:21 »
zitra jeste zkusim uvolnit misto na disku pripadne i zvetsit swap aby se vyloucila moznost skutecneho nedostatku mista a uvidime co to udela :)

 

Provoz zaštiťuje spolek OpenAlt.