After kill -9 on 11gr2 instance, the instance restart automatically in a few seconds.*
After kill -9 on 10gr2 instance, the instance restart automatically after a few minutes_ ....

Is it normal behaviour ?
Where to change this timeout ?

It's not about timeout. And Its normal behaviour. The agent will detect that instance crashed and will try start the instance soon as possible.

If you shut down the database with SQL*Plus or SRVCTL, crs does not interpret this as a database failure and does not attempt to restart the database. But if the instance crashes for some other reason, the crs will try to bring up the instance automatically.

With Oracle 11.2 database auto start policy in the clusterware is restore, which means that clusterware will remember the last state of the database. If the database was stopped normally then on the next restart of clusterware it won’t be started. Otherwise if the server crashes or by some reason the OS is rebooted then clusterware will start the database because last state was ONLINE (running).

By default with Oracle 11.2 several important resources come in the profile with attribute AUTO_START=restore. Such resources are Oracle Database resource, Oracle ASM resource, CRS resource type for the Listener. This means that if Oracle database server is restarted for some reason , it will keep and restore the last state.

http://oraclespot.wordpress.com/2011/05/

Check alert.log of 10.2.0.5.4 to know why it take more time to startup.

the mechanism to check databases has changed from 10g to 11g. So what you see might be due to the different mechnism used to check the database.
I fear that the timout cannot be changed without involving support.

So best open an SR.

However there is one thing, which comes to my mind: Have you created services for both databases?
It might be Oracle checks the services more often and this might have an impact on the instances.

definitely this INTERVAL is the root cause.
However as written above, the check function itself has changed also. So while for an 11gR2 Oracle really can check in seconds if instance is down, lowering the CHECK_INTERVAL for a 10g database may have a very negative impact. (On performance, or false detection).

For that reason, I would not change CHECK_INTERVAL without asking Oracle support first (SR), since changing this value requires crsctl on an ora.* resource, which is only supported when Oracle support tells you to do it.

That was also the reason I asked if you defined a service. It may be the CHECK_INTERVAL on a service is lower. Which than will impact the database as well.

no,
i didn't define any service.
you mean that by default the CHECK_INTERVAL on a service is shorter than on the database,
so, by specifying a service, the CHECK on the service could lead to restart the database faster ?